PageSourceSearch

https://www.austindavenport.com/static/js/main.79ccb273.js

js austindavenport.com collected 2026-09-24 14:38:40 UTC 708,100 bytes, 4,404 lines download raw bytes

1/*! For license information please see main.79ccb273.js.LICENSE.txt */
2(()=>{var e={240:e=>{"use strict";var t=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=Object.defineProperty,o=Object.getOwnPropertyDescriptor,i=function(e){return"function"===typeof Array.isArray?Array.isArray(e):"[object Array]"===n.call(e)},a=function(e){if(!e||"[object Object]"!==n.call(e))return!1;var r,o=t.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&t.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!i)return!1;for(r in e);return"undefined"===typeof r||t.call(e,r)},l=function(e,t){r&&"__proto__"===t.name?r(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(e,n){if("__proto__"===n){if(!t.call(e,n))return;if(o)return o(e,n).value}return e[n]};e.exports=function e(){var t,n,r,o,c,u,d=arguments[0],p=1,f=arguments.length,m=!1;for("boolean"===typeof d&&(m=d,d=arguments[1]||{},p=2),(null==d||"object"!==typeof d&&"function"!==typeof d)&&(d={});p<f;++p)if(null!=(t=arguments[p]))for(n in t)r=s(d,n),d!==(o=s(t,n))&&(m&&o&&(a(o)||(c=i(o)))?(c?(c=!1,u=r&&i(r)?r:[]):u=r&&a(r)?r:{},l(d,{name:n,newValue:e(m,u,o)})):"undefined"!==typeof o&&l(d,{name:n,newValue:o}));return d}},403:e=>{var t=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,n=/\n/g,r=/^\s*/,o=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,i=/^:\s*/,a=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,l=/^[;\s]*/,s=/^\s+|\s+$/g,c="";function u(e){return e?e.replace(s,c):c}e.exports=function(e,s){if("string"!==typeof e)throw new TypeError("First argument must be a string");if(!e)return[];s=s||{};var d=1,p=1;function f(e){var t=e.match(n);t&&(d+=t.length);var r=e.lastIndexOf("\n");p=~r?e.length-r:p+e.length}function m(){var e={line:d,column:p};return function(t){return t.position=new h(e),y(),t}}function h(e){this.start=e,this.end={line:d,column:p},this.source=s.source}h.prototype.content=e;var g=[];function b(t){var n=new Error(s.source+":"+d+":"+p+": "+t);if(n.reason=t,n.filename=s.source,n.line=d,n.column=p,n.source=e,!s.silent)throw n;g.push(n)}function v(t){var n=t.exec(e);if(n){var r=n[0];return f(r),e=e.slice(r.length),n}}function y(){v(r)}function x(e){var t;for(e=e||[];t=w();)!1!==t&&e.push(t);return e}function w(){var t=m();if("/"==e.charAt(0)&&"*"==e.charAt(1)){for(var n=2;c!=e.charAt(n)&&("*"!=e.charAt(n)||"/"!=e.charAt(n+1));)++n;if(n+=2,c===e.charAt(n-1))return b("End of comment missing");var r=e.slice(2,n-2);return p+=2,f(r),e=e.slice(n),p+=2,t({type:"comment",comment:r})}}function E(){var e=m(),n=v(o);if(n){if(w(),!v(i))return b("property missing ':'");var r=v(a),s=e({type:"declaration",property:u(n[0].replace(t,c)),value:r?u(r[0].replace(t,c)):c});return v(l),s}}return y(),function(){var e,t=[];for(x(t);e=E();)!1!==e&&(t.push(e),x(t));return t}()}},730:(e,t,n)=>{"use strict";var r=n(43),o=n(853);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,l={};function s(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(l[e]=t,e=0;e<t.length;e++)a.add(t[e])}var u=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,o,i,a){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=a}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEac
vendor: 10,652 bytes, line 2
2h((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function v(e){return e[1].toUpperCase()}function y(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null===t||"undefined"===typeof t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var x=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for("react.element"),E=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),T=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),S=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),R=Symbol.for("react.suspense_list"),I=Symbol.for("react.memo"),L=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var O=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var j=Symbol.iterator;function z(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=j&&e[j]||e["@@iterator"])?e:null}var N,M=Object.assign;function D(e){if(void 0===N)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);N=t&&t[1]||""}return"\n"+N+e}var U=!1;function F(e,t){if(!e||U)return"";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"===typeof c.stack){for(var o=c.stack.split("\n"),i=r.stack.split("\n"),a=o.length-1,l=i.length-1;1<=a&&0<=l&&o[a]!==i[l];)l--;for(;1<=a&&0<=l;a--,l--)if(o[a]!==i[l]){if(1!==a||1!==l)do{if(a--,0>--l||o[a]!==i[l]){var s="\n"+o[a].replace(" at new "," at ");return e.displayName&&s.includes("<anonymous>")&&(s=s.replace("<anonymous>",e.displayName)),s}}while(1<=a&&0<=l);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?D(e):""}function $(e){switch(e.tag){case 5:return D(e.type);case 16:return D("Lazy");case 13:return D("Suspense");case 19:return D("SuspenseList");case 0:case 2:case 15:return e=F(e.type,!1);case 11:return e=F(e.type.render,!1);case 1:return e=F(e.type,!0);default:return""}}function V(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case _:return"Fragment";case E:return"Portal";case T:return"Profiler";case k:return"StrictMode";case A:return"Suspense";case R:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case S:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case P:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case I:return null!==(t=e.displayName||null)?t:V(e.type)||"Memo";case L:t=e._payload,e=e._init;try{return V(e(t))}catch(n){}}return null}function B(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return V(t);case 8:return t===k?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Y(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,i.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function W(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function q(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Q(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function X(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function J(e,t){X(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Z(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(i(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(i(92));
2if(te(n)){if(1<n.length)throw Error(i(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function ie(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ae(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function le(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function se(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ve(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(i(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(i(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(i(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(i(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var xe=null;function we(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.n
vendor: 5,955 bytes, line 2
2odeType?e.parentNode:e}var Ee=null,_e=null,ke=null;function Te(e){if(e=xo(e)){if("function"!==typeof Ee)throw Error(i(280));var t=e.stateNode;t&&(t=Eo(t),Ee(e.stateNode,e.type,t))}}function Ce(e){_e?ke?ke.push(e):ke=[e]:_e=e}function Se(){if(_e){var e=_e,t=ke;if(ke=_e=null,Te(e),t)for(e=0;e<t.length;e++)Te(t[e])}}function Pe(e,t){return e(t)}function Ae(){}var Re=!1;function Ie(e,t,n){if(Re)return e(t,n);Re=!0;try{return Pe(e,t,n)}finally{Re=!1,(null!==_e||null!==ke)&&(Ae(),Se())}}function Le(e,t){var n=e.stateNode;if(null===n)return null;var r=Eo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(i(231,t,typeof n));return n}var Oe=!1;if(u)try{var je={};Object.defineProperty(je,"passive",{get:function(){Oe=!0}}),window.addEventListener("test",je,je),window.removeEventListener("test",je,je)}catch(ue){Oe=!1}function ze(e,t,n,r,o,i,a,l,s){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var Ne=!1,Me=null,De=!1,Ue=null,Fe={onError:function(e){Ne=!0,Me=e}};function $e(e,t,n,r,o,i,a,l,s){Ne=!1,Me=null,ze.apply(Fe,arguments)}function Ve(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function Be(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if(Ve(e)!==e)throw Error(i(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=Ve(e)))throw Error(i(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var a=o.alternate;if(null===a){if(null!==(r=o.return)){n=r;continue}break}if(o.child===a.child){for(a=o.child;a;){if(a===n)return He(o),e;if(a===r)return He(o),t;a=a.sibling}throw Error(i(188))}if(n.return!==r.return)n=o,r=a;else{for(var l=!1,s=o.child;s;){if(s===n){l=!0,n=o,r=a;break}if(s===r){l=!0,r=o,n=a;break}s=s.sibling}if(!l){for(s=a.child;s;){if(s===n){l=!0,n=a,r=o;break}if(s===r){l=!0,r=a,n=o;break}s=s.sibling}if(!l)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(3!==n.tag)throw Error(i(188));return n.stateNode.current===n?e:t}(e))?Ye(e):null}function Ye(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ye(e);if(null!==t)return t;e=e.sibling}return null}var We=o.unstable_scheduleCallback,Ke=o.unstable_cancelCallback,qe=o.unstable_shouldYield,Qe=o.unstable_requestPaint,Xe=o.unstable_now,Je=o.unstable_getCurrentPriorityLevel,Ze=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,it=null;var at=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/st|0)|0},lt=Math.log,st=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,i=e.pingedLanes,a=268435455&n;if(0!==a){var l=a&~o;0!==l?r=dt(l):0!==(i&=a)&&(r=dt(i))}else 0!==(a=n&~o)?r=dt(a):0!==i&&(r=dt(i));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&o)&&((o=r&-r)>=(i=t&-t)||16===o&&0!==(4194240&i)))return t;if(0!==(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-at(t)),r|=e[n],t&=~o;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0===(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-at(t)]=n}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-at(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var yt=0;function xt(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var wt,Et,_t,kt,Tt,Ct=!1,St=[],Pt=null,At=null,Rt=null,It=new Map,Lt=new Map,Ot=[],jt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function zt(e,t){switch(e){case"focusin":case"focusout":Pt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":Rt=null;break;case"pointerover":case"pointerout":It.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Lt.delete(t.pointerId)}}function Nt(e,t,n,r,o,i){return null===e||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:i,targetContainers:[o]},null!==t&&(null!==(t=xo(t))&&Et(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Mt(e){var t=yo(e.target);if(null!==t){var n=Ve(t);
vendor: 5,372 bytes, line 2
2if(null!==n)if(13===(t=n.tag)){if(null!==(t=Be(n)))return e.blockedOn=t,void Tt(e.priority,(function(){_t(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Dt(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=xo(n))&&Et(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);xe=r,n.target.dispatchEvent(r),xe=null,t.shift()}return!0}function Ut(e,t,n){Dt(e)&&n.delete(t)}function Ft(){Ct=!1,null!==Pt&&Dt(Pt)&&(Pt=null),null!==At&&Dt(At)&&(At=null),null!==Rt&&Dt(Rt)&&(Rt=null),It.forEach(Ut),Lt.forEach(Ut)}function $t(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,Ft)))}function Vt(e){function t(t){return $t(t,e)}if(0<St.length){$t(St[0],e);for(var n=1;n<St.length;n++){var r=St[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Pt&&$t(Pt,e),null!==At&&$t(At,e),null!==Rt&&$t(Rt,e),It.forEach(t),Lt.forEach(t),n=0;n<Ot.length;n++)(r=Ot[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Ot.length&&null===(n=Ot[0]).blockedOn;)Mt(n),null===n.blockedOn&&Ot.shift()}var Bt=x.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var o=yt,i=Bt.transition;Bt.transition=null;try{yt=1,Wt(e,t,n,r)}finally{yt=o,Bt.transition=i}}function Yt(e,t,n,r){var o=yt,i=Bt.transition;Bt.transition=null;try{yt=4,Wt(e,t,n,r)}finally{yt=o,Bt.transition=i}}function Wt(e,t,n,r){if(Ht){var o=qt(e,t,n,r);if(null===o)Hr(e,t,r,Kt,n),zt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Pt=Nt(Pt,e,t,n,r,o),!0;case"dragenter":return At=Nt(At,e,t,n,r,o),!0;case"mouseover":return Rt=Nt(Rt,e,t,n,r,o),!0;case"pointerover":var i=o.pointerId;return It.set(i,Nt(It.get(i)||null,e,t,n,r,o)),!0;case"gotpointercapture":return i=o.pointerId,Lt.set(i,Nt(Lt.get(i)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(zt(e,r),4&t&&-1<jt.indexOf(e)){for(;null!==o;){var i=xo(o);if(null!==i&&wt(i),null===(i=qt(e,t,n,r))&&Hr(e,t,r,Kt,n),i===o)break;o=i}null!==o&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Kt=null;function qt(e,t,n,r){if(Kt=null,null!==(e=yo(e=we(r))))if(null===(t=Ve(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=Be(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function Qt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Je()){case Ze:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Xt=null,Jt=null,Zt=null;function en(){if(Zt)return Zt;var e,t,n=Jt,r=n.length,o="value"in Xt?Xt.value:Xt.textContent,i=o.length;for(e=0;e<r&&n[e]===o[e];e++);var a=r-e;for(t=1;t<=a&&n[r-t]===o[i-t];t++);return Zt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,i){for(var a in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=i,this.currentTarget=null,e)e.hasOwnProperty(a)&&(t=e[a],this[a]=t?t(o):o[a]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,ln,sn,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=on(cn),dn=M({},cn,{view:0,detail:0}),pn=on(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Tn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.from
vendor: 4,352 bytes, line 2
2Element===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==sn&&(sn&&"mousemove"===e.type?(an=e.screenX-sn.screenX,ln=e.screenY-sn.screenY):ln=an=0,sn=e),an)},movementY:function(e){return"movementY"in e?e.movementY:ln}}),mn=on(fn),hn=on(M({},fn,{dataTransfer:0})),gn=on(M({},dn,{relatedTarget:0})),bn=on(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=on(vn),xn=on(M({},cn,{data:0})),wn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},En={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},_n={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=_n[e])&&!!t[e]}function Tn(){return kn}var Cn=M({},dn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?En[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Tn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Sn=on(Cn),Pn=on(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),An=on(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Tn})),Rn=on(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),In=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Ln=on(In),On=[9,13,27,32],jn=u&&"CompositionEvent"in window,zn=null;u&&"documentMode"in document&&(zn=document.documentMode);var Nn=u&&"TextEvent"in window&&!zn,Mn=u&&(!jn||zn&&8<zn&&11>=zn),Dn=String.fromCharCode(32),Un=!1;function Fn(e,t){switch(e){case"keyup":return-1!==On.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function $n(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Vn=!1;var Bn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Bn[e.type]:"textarea"===t}function Gn(e,t,n,r){Ce(r),0<(t=Yr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Yn=null,Wn=null;function Kn(e){Dr(e,0)}function qn(e){if(W(wo(e)))return e}function Qn(e,t){if("change"===e)return t}var Xn=!1;if(u){var Jn;if(u){var Zn="oninput"in document;if(!Zn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Zn="function"===typeof er.oninput}Jn=Zn}else Jn=!1;Xn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){Yn&&(Yn.detachEvent("onpropertychange",nr),Wn=Yn=null)}function nr(e){if("value"===e.propertyName&&qn(Wn)){var t=[];Gn(t,Wn,e,we(e)),Ie(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Wn=n,(Yn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return qn(Wn)}function ir(e,t){if("click"===e)return qn(t)}function ar(e,t){if("input"===e||"change"===e)return qn(t)}var lr="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t};function sr(e,t){if(lr(e,t))return!0;
vendor: 4,832 bytes, line 2
2if("object"!==typeof e||null===e||"object"!==typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!d.call(t,o)||!lr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,i=Math.min(r.start,o);r=void 0===r.end?i:Math.min(r.end,o),!e.extend&&i>r&&(o=r,r=i,i=o),o=ur(n,i);var a=ur(n,r);o&&a&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==a.node||e.focusOffset!==a.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),i>r?(e.addRange(t),e.extend(a.node,a.offset)):(t.setEnd(a.node,a.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,vr=null,yr=!1;function xr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==gr||gr!==K(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&sr(vr,r)||(vr=r,0<(r=Yr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Er={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},_r={},kr={};function Tr(e){if(_r[e])return _r[e];if(!Er[e])return e;var t,n=Er[e];for(t in n)if(n.hasOwnProperty(t)&&t in kr)return _r[e]=n[t];return e}u&&(kr=document.createElement("div").style,"AnimationEvent"in window||(delete Er.animationend.animation,delete Er.animationiteration.animation,delete Er.animationstart.animation),"TransitionEvent"in window||delete Er.transitionend.transition);var Cr=Tr("animationend"),Sr=Tr("animationiteration"),Pr=Tr("animationstart"),Ar=Tr("transitionend"),Rr=new Map,Ir="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Lr(e,t){Rr.set(e,t),s(t,[e])}for(var Or=0;Or<Ir.length;Or++){var jr=Ir[Or];Lr(jr.toLowerCase(),"on"+(jr[0].toUpperCase()+jr.slice(1)))}Lr(Cr,"onAnimationEnd"),Lr(Sr,"onAnimationIteration"),Lr(Pr,"onAnimationStart"),Lr("dblclick","onDoubleClick"),Lr("focusin","onFocus"),Lr("focusout","onBlur"),Lr(Ar,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focu
2sin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var zr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Nr=new Set("cancel close invalid load scroll toggle".split(" ").concat(zr));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,a,l,s,c){if($e.apply(this,arguments),Ne){if(!Ne)throw Error(i(198));var u=Me;Ne=!1,Me=null,De||(De=!0,Ue=u)}}(r,t,void 0,e),e.currentTarget=null}function Dr(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var i=void 0;if(t)for(var a=r.length-1;0<=a;a--){var l=r[a],s=l.instance,c=l.currentTarget;if(l=l.listener,s!==i&&o.isPropagationStopped())break e;Mr(o,l,c),i=s}else for(a=0;a<r.length;a++){if(s=(l=r[a]).instance,c=l.currentTarget,l=l.listener,s!==i&&o.isPropagationStopped())break e;Mr(o,l,c),i=s}}}if(De)throw e=Ue,De=!1,Ue=null,e}function Ur(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||(Br(t,e,2,!1),n.add(r))}function Fr(e,t,n){var r=0;t&&(r|=4),Br(n,e,r,t)}var $r="_reactListening"+Math.random().toString(36).slice(2);function Vr(e){if(!e[$r]){e[$r]=!0,a.forEach((function(t){"selectionchange"!==t&&(Nr.has(t)||Fr(t,!1,e),Fr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[$r]||(t[$r]=!0,Fr("selectionchange",!1,t))}}function Br(e,t,n,r){switch(Qt(t)){case 1:var o=Gt;break;case 4:o=Yt;break;default:o=Wt}n=o.bind(null,t,n,e),o=void 0,!Oe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,o){var i=r;if(0===(1&t)&&0===(2&t)&&null!==r)e:for(;;){if(null===r)return;var a=r.tag;if(3===a||4===a){var l=r.stateNode.containerInfo;if(l===o||8===l.nodeType&&l.parentNode===o)break;if(4===a)for(a=r.return;null!==a;){var s=a.tag;if((3===s||4===s)&&((s=a.stateNode.containerInfo)===o||8===s.nodeType&&s.parentNode===o))return;a=a.return}for(;null!==l;){if(null===(a=yo(l)))return;if(5===(s=a.tag)||6===s){r=i=a;continue e}l=l.parentNode}}r=r.return}Ie((function(){var r=i,o=we(n),a=[];e:{var l=Rr.get(e);if(void 0!==l){var s=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":s=Sn;break;case"focusin":c="focus",s=gn;break;case"focusout":c="blur",s=gn;break;case"beforeblur":case"afterblur":s=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":s=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":s=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":s=An;break;case Cr:case Sr:case Pr:s=bn;break;case Ar:s=Rn;break;case"scroll":s=pn;break;case"wheel":s=Ln;break;case"copy":case"cut":case"paste":s=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":s=Pn}var u=0!==(4&t),d=!u&&"scroll"===e,p=u?null!==l?l+"Capture":null:l;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=Le(m,p))&&u.push(Gr(m,h,f)))),d)break;m=m.return}0<u.length&&(l=new s(l,c,null,n,o),a.push({event:l,listeners:u}))}}if(0===(7&t)){if(s="mouseout"===e||"pointerout"===e,(!(l="mouseover"===e||"pointerover"===e)||n===xe||!(c=n.relatedTarget||n.fromElement)||!yo(c)&&!c[ho])&&(s||l)&&(l=o.window===o?o:(l=o.ownerDocument)?l.defaultView||l.parentWindow:window,s?(s=r,null!==(c=(c=n.relatedTarget||n.toElement)?yo(c):null)&&(c!==(d=Ve(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(s=null,c=r),s!==c)){if(u=mn,h="onMouseLeave",p="onMouseEnter",m="mou
2se","pointerout"!==e&&"pointerover"!==e||(u=Pn,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==s?l:wo(s),f=null==c?l:wo(c),(l=new u(h,m+"leave",s,n,o)).target=d,l.relatedTarget=f,h=null,yo(o)===r&&((u=new u(p,m+"enter",c,n,o)).target=f,u.relatedTarget=d,h=u),d=h,s&&c)e:{for(p=c,m=0,f=u=s;f;f=Wr(f))m++;for(f=0,h=p;h;h=Wr(h))f++;for(;0<m-f;)u=Wr(u),m--;for(;0<f-m;)p=Wr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Wr(u),p=Wr(p)}u=null}else u=null;null!==s&&Kr(a,l,s,u,!1),null!==c&&null!==d&&Kr(a,d,c,u,!0)}if("select"===(s=(l=r?wo(r):window).nodeName&&l.nodeName.toLowerCase())||"input"===s&&"file"===l.type)var g=Qn;else if(Hn(l))if(Xn)g=ar;else{g=or;var b=rr}else(s=l.nodeName)&&"input"===s.toLowerCase()&&("checkbox"===l.type||"radio"===l.type)&&(g=ir);switch(g&&(g=g(e,r))?Gn(a,g,n,o):(b&&b(e,l,r),"focusout"===e&&(b=l._wrapperState)&&b.controlled&&"number"===l.type&&ee(l,"number",l.value)),b=r?wo(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,vr=null);break;case"focusout":vr=br=gr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,xr(a,n,o);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":xr(a,n,o)}var v;if(jn)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else Vn?Fn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Mn&&"ko"!==n.locale&&(Vn||"onCompositionStart"!==y?"onCompositionEnd"===y&&Vn&&(v=en()):(Jt="value"in(Xt=o)?Xt.value:Xt.textContent,Vn=!0)),0<(b=Yr(r,y)).length&&(y=new xn(y,e,null,n,o),a.push({event:y,listeners:b}),v?y.data=v:null!==(v=$n(n))&&(y.data=v))),(v=Nn?function(e,t){switch(e){case"compositionend":return $n(t);case"keypress":return 32!==t.which?null:(Un=!0,Dn);case"textInput":return(e=t.data)===Dn&&Un?null:e;default:return null}}(e,n):function(e,t){if(Vn)return"compositionend"===e||!jn&&Fn(e,t)?(e=en(),Zt=Jt=Xt=null,Vn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;
vendor: 12,611 bytes, line 2
2case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Yr(r,"onBeforeInput")).length&&(o=new xn("onBeforeInput","beforeinput",null,n,o),a.push({event:o,listeners:r}),o.data=v))}Dr(a,t)}))}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Yr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,i=o.stateNode;5===o.tag&&null!==i&&(o=i,null!=(i=Le(e,n))&&r.unshift(Gr(e,i,o)),null!=(i=Le(e,t))&&r.push(Gr(e,i,o))),e=e.return}return r}function Wr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,o){for(var i=t._reactName,a=[];null!==n&&n!==r;){var l=n,s=l.alternate,c=l.stateNode;if(null!==s&&s===r)break;5===l.tag&&null!==c&&(l=c,o?null!=(s=Le(n,i))&&a.unshift(Gr(n,s,l)):o||null!=(s=Le(n,i))&&a.push(Gr(n,s,l))),n=n.return}0!==a.length&&e.push({event:t,listeners:a})}var qr=/\r\n?/g,Qr=/\u0000|\uFFFD/g;function Xr(e){return("string"===typeof e?e:""+e).replace(qr,"\n").replace(Qr,"")}function Jr(e,t,n){if(t=Xr(t),Xr(e)!==t&&n)throw Error(i(425))}function Zr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"===typeof setTimeout?setTimeout:void 0,oo="function"===typeof clearTimeout?clearTimeout:void 0,io="function"===typeof Promise?Promise:void 0,ao="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof io?function(e){return io.resolve(null).then(e).catch(lo)}:ro;function lo(e){setTimeout((function(){throw e}))}function so(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Vt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Vt(t)}function co(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var po=Math.random().toString(36).slice(2),fo="__reactFiber$"+po,mo="__reactProps$"+po,ho="__reactContainer$"+po,go="__reactEvents$"+po,bo="__reactListeners$"+po,vo="__reactHandles$"+po;function yo(e){var t=e[fo];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ho]||n[fo]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[fo])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function xo(e){return!(e=e[fo]||e[ho])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(i(33))}function Eo(e){return e[mo]||null}var _o=[],ko=-1;function To(e){return{current:e}}function Co(e){0>ko||(e.current=_o[ko],_o[ko]=null,ko--)}function So(e,t){ko++,_o[ko]=e.current,e.current=t}var Po={},Ao=To(Po),Ro=To(!1),Io=Po;function Lo(e,t){var n=e.type.contextTypes;if(!n)return Po;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,i={};for(o in n)i[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function Oo(e){return null!==(e=e.childContextTypes)&&void 0!==e}function jo(){Co(Ro),Co(Ao)}function zo(e,t,n){if(Ao.current!==Po)throw Error(i(168));So(Ao,t),So(Ro,n)}function No(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!==typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(i(108,B(e)||"Unknown",o));return M({},n,r)}function Mo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Po,Io=Ao.current,So(Ao,e),So(Ro,Ro.current),!0}function Do(e,t,n){var r=e.stateNode;if(!r)throw Error(i(169));n?(e=No(e,t,Io),r.__reactInternalMemoizedMergedChildContext=e,Co(Ro),Co(Ao),So(Ao,e)):Co(Ro),So(Ro,n)}var Uo=null,Fo=!1,$o=!1;function Vo(e){null===Uo?Uo=[e]:Uo.push(e)}function Bo(){if(!$o&&null!==Uo){$o=!0;var e=0,t=yt;try{var n=Uo;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Uo=null,Fo=!1}catch(o){throw null!==Uo&&(Uo=Uo.slice(e+1)),We(Ze,Bo),o}finally{yt=t,$o=!1}}return null}var Ho=[],Go=0,Yo=null,Wo=0,Ko=[],qo=0,Qo=null,Xo=1,Jo="";function Zo(e,t){Ho[Go++]=Wo,Ho[Go++]=Yo,Yo=e,Wo=t}function ei(e,t,n){Ko[qo++]=Xo,Ko[qo++]=Jo,Ko[qo++]=Qo,Qo=e;var r=Xo;e=Jo;var o=32-at(r)-1;r&=~(1<<o),n+=1;var i=32-at(t)+o;if(30<i){var a=o-o%5;i=(r&(1<<a)-1).toString(32),r>>=a,o-=a,Xo=1<<32-at(t)+o|n<<o|r,Jo=i+e}else Xo=1<<i|n<<o|r,Jo=e}function ti(e){null!==e.return&&(Zo(e,1),ei(e,1,0))}function ni(e){for(;e===Yo;)Yo=Ho[--Go],Ho[Go]=null,Wo=Ho[--Go],Ho[Go]=null;for(;e===Qo;)Qo=Ko[--qo],Ko[qo]=null,Jo=Ko[--qo],Ko[qo]=null,Xo=Ko[--qo],Ko[qo]=null}var ri=null,oi=null,ii=!1,ai=null;function li(e,t){var n=Ic(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function si(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ri=e,oi=co(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ri=e,oi=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Qo?{id:Xo,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Ic(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ri=e,oi=null,!0);default:return!1}}function ci(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function ui(e){if(ii){var t=oi;if(t){var n=t;if(!si(e,t)){if(ci(e))throw Error(i(418));t=co(n.nextSibling);var r=ri;t&&si(e,t)?li(r,n):(e.flags=-4097&e.flags|2,ii=!1,ri=e)}}else{if(ci(e))throw Error(i(418));e.flags=-4097&e.flags|2,ii=!1,ri=e}}}function di(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ri=e}function pi(e){if(e!==ri)return!1;if(!ii)return di(e),ii=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oi)){if(ci(e))throw fi(),Error(i(418));for(;t;)li(e,t),t=co(t.nextSibling)}if(di(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(i(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oi=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oi=null}}else oi=ri?co(e.stateNode.nextSibling):null;return!0}function fi(){for(var e=oi;e;)e=co(e.nextSibling)}function mi(){oi=ri=null,ii=!1}function hi(e){null===ai?ai=[e]:ai.push(e)}var gi=x.ReactCurrentBatchConfig;function bi(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(i(309));var r=n.stateNode}if(!r)throw Error(i(147,e));var o=r,a=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===a?t.ref:(t=function(e){var t=o.refs;null===e?delete t[a]:t[a]=e},t._stringRef=a,t)}if("string"!==typeof e)throw Error(i(284));if(!n._owner)throw Error(i(290,e))}return e}function vi(e,t){throw e=Object.prototype.toString.call(t),Error(i(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function yi(e){return(0,e._init)(e._payload)}function xi(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function a(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function l(t){return e&&null===t.alternate&&(t.flags|=2),t}function s(e,t,n,r){return null===t||6!==t.tag?((t=Mc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var i=n.type;return i===_?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===i||"object"===typeof i&&null!==i&&i.$$typeof===L&&yi(i)===t.type)?((r=o(t,n.props)).ref=bi(e,t,n),r.return=e,r):((r=jc(n.type,n.key,n.props,null,e.mode,r)).ref=bi(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Dc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function d(e,t,n,r,i){return null===t||7!==t.tag?((t=zc(n,e.mode,r,i)).return=e,t):((t=o(t,n)).return=e,t)}function p(e,t,n){if("string"===typeof t&&""!==t||"number"===typeof t)return(t=Mc(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case w:return(n=jc(t.type,t.key,t.props,null,e.mode,n)).ref=bi(e,null,t),n.return=e,n;case E:return(t=Dc(t,e.mode,n)).return=e,t;case L:return p(e,(0,t._init)(t._payload),n)}if(te(t)||z(t))return(t=zc(t,e.mode,n,null)).return=e,t;vi(e,t)}return null}function f(e,t,n,r){var o=null!==t?t.key:null;if("string"===typeof n&&""!==n||"number"===typeof n)return null!==o?null:s(e,t,""+n,r);if("object"===typeof n&&null!==n){switch(n.$$typeof){case w:return n.key===o?c(e,t,n,r):null;case E:return n.key===o?u(e,t,n,r):null;case L:return f(e,t,(o=n._init)(n._payload),r)}if(te(n)||z(n))return null!==o?null:d(e,t,n,r,null);vi(e,n)}return null}function m(e,t,n,r,o){if("string"===typeof r&&""!==r||"number"===typeof r)return s(t,e=e.get(n)||null,""+r,o);if("object"===typeof r&&null!==r){switch(r.$$typeof){case w:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case E:return u(t,e=e.get(null===r.key?n:r.key)||null,r,o);case L:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||z(r))return d(t,e=e.get(n)||null,r,o,null);vi(t,r)}return null}function h(o,i,l,s){for(var c=null,u=null,d=i,h=i=0,g=null;null!==d&&h<l.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(o,d,l[h],s);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(o,d),i=a(b,i,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===l.length)return n(o,d),ii&&Zo(o,h),c;if(null===d){for(;h<l.length;h++)null!==(d=p(o,l[h],s))&&(i=a(d,i,h),null===u?c=d:u.sibling=d,u=d);return ii&&Zo(o,h),c}for(d=r(o,d);h<l.length;h++)null!==(g=m(d,o,h,l[h],s))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),i=a(g,i,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(o,e)})),ii&&Zo(o,h),c}function g(o,l,s,c){var u=z(s);if("function"!==typeof u)throw Error(i(150));if(null==(s=u.call(s)))throw Error(i(151));for(var d=u=null,h=l,g=l=0,b=null,v=s.next();null!==h&&!v.done;g++,v=s.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(o,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(o,h),l=a(y,l,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(o,h),ii&&Zo(o,g),u;if(null===h){for(;!v.done;g++,v=s.next())null!==(v=p(o,v.value,c))&&(l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return ii&&Zo(o,g),u}for(h=r(o,h);!v.done;g++,v=s.next())null!==(v=m(h,o,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),l=a(v,l,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(o,e)})),ii&&Zo(o,g),u}return function e(r,i,a,s){if("object"===typeof a&&null!==a&&a.type===_&&null===a.key&&(a=a.props.children),"object"===typeof a&&null!==a){switch(a.$$typeof){case w:e:{for(var c=a.key,u=i;null!==u;){if(u.key===c){if((c=a.type)===_){if(7===u.tag){n(r,u.sibling),(i=o(u,a.props.children)).return=r,r=i;break e}}else if(u.elementType===c||"object"===typeof c&&null!==c&&c.$$typeof===L&&yi(c)===u.type){n(r,u.sibling),(i=o(u,a.props)).ref=bi(r,u,a),i.return=r,r=i;break e}n(r,u);break}t(r,u),u=u.sibling}a.type===_?((i=zc(a.props.children,r.mode,s,a.key)).return=r,r=i):((s=jc(a.type,a.key,a.props,null,r.mode,s)).ref=bi(r,i,a),s.return=r,r=s)}return l(r);case E:e:{for(u=a.key;null!==i;){if(i.key===u){if(4===i.tag&&i.stateNode.containerInfo===a.containerInfo&&i.stateNode.implementation===a.implementation){n(r,i.sibling),(i=o(i,a.children||[])).return=r,r=i;break e}n(r,i);break}t(r,i),i=i.sibling}(i=Dc(a,r.mode,s)).return=r,r=i}return l(r);case L:return e(r,i,(u=a._init)(a._payload),s)}if(te(a))return h(r,i,a,s);if(z(a))return g(r,i,a,s);vi(r,a)}return"string"===typeof a&&""!==a||"number"===typeof a?(a=""+a,null!==i&&6===i.tag?(n(r,i.sibling),(i=o(i,a)).return=r,r=i):(n(r,i),(i=Mc(a,r.mode,s)).return=r,r=i),l(r)):n(r,i)}}var wi=xi(!0),Ei=xi(!1),_i=To(null),ki=null,Ti=null,Ci=null;function Si(){Ci=Ti=ki=null}function Pi(e){var t=_i.current;Co(_i),e._currentValue=t}
vendor: 5,324 bytes, line 2
2function Ai(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Ri(e,t){ki=e,Ci=Ti=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(yl=!0),e.firstContext=null)}function Ii(e){var t=e._currentValue;if(Ci!==e)if(e={context:e,memoizedValue:t,next:null},null===Ti){if(null===ki)throw Error(i(308));Ti=e,ki.dependencies={lanes:0,firstContext:e}}else Ti=Ti.next=e;return t}var Li=null;function Oi(e){null===Li?Li=[e]:Li.push(e)}function ji(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Oi(t)):(n.next=o.next,o.next=n),t.interleaved=n,zi(e,r)}function zi(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ni=!1;function Mi(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Di(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Ui(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Fi(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!==(2&Ps)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,zi(e,n)}return null===(o=r.interleaved)?(t.next=t,Oi(r)):(t.next=o.next,o.next=t),r.interleaved=t,zi(e,n)}function $i(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}function Vi(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,i=null;if(null!==(n=n.firstBaseUpdate)){do{var a={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===i?o=i=a:i=i.next=a,n=n.next}while(null!==n);null===i?o=i=t:i=i.next=t}else o=i=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Bi(e,t,n,r){var o=e.updateQueue;Ni=!1;var i=o.firstBaseUpdate,a=o.lastBaseUpdate,l=o.shared.pending;if(null!==l){o.shared.pending=null;var s=l,c=s.next;s.next=null,null===a?i=c:a.next=c,a=s;var u=e.alternate;null!==u&&((l=(u=u.updateQueue).lastBaseUpdate)!==a&&(null===l?u.firstBaseUpdate=c:l.next=c,u.lastBaseUpdate=s))}if(null!==i){var d=o.baseState;for(a=0,u=c=s=null,l=i;;){var p=l.lane,f=l.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,h=l;switch(p=t,f=n,h.tag){case 1:if("function"===typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null===(p="function"===typeof(m=h.payload)?m.call(f,d,p):m)||void 0===p)break e;d=M({},d,p);break e;case 2:Ni=!0}}null!==l.callback&&0!==l.lane&&(e.flags|=64,null===(p=o.effects)?o.effects=[l]:p.push(l))}else f={eventTime:f,lane:p,tag:l.tag,payload:l.payload,callback:l.callback,next:null},null===u?(c=u=f,s=d):u=u.next=f,a|=p;if(null===(l=l.next)){if(null===(l=o.shared.pending))break;l=(p=l).next,p.next=null,o.lastBaseUpdate=p,o.shared.pending=null}}if(null===u&&(s=d),o.baseState=s,o.firstBaseUpdate=c,o.lastBaseUpdate=u,null!==(t=o.shared.interleaved)){o=t;do{a|=o.lane,o=o.next}while(o!==t)}else null===i&&(o.shared.lanes=0);Ns|=a,e.lanes=a,e.memoizedState=d}}function Hi(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!==typeof o)throw Error(i(191,o));o.call(r)}}}var Gi={},Yi=To(Gi),Wi=To(Gi),Ki=To(Gi);function qi(e){if(e===Gi)throw Error(i(174));return e}function Qi(e,t){switch(So(Ki,t),So(Wi,e),So(Yi,Gi),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:se(null,"");break;default:t=se(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Co(Yi),So(Yi,t)}function Xi(){Co(Yi),Co(Wi),Co(Ki)}function Ji(e){qi(Ki.current);var t=qi(Yi.current),n=se(t,e.type);t!==n&&(So(Wi,e),So(Yi,n))}function Zi(e){Wi.current===e&&(Co(Yi),Co(Wi))}var ea=To(0);function ta(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var na=[];function ra(){for(var e=0;e<na.length;e++)na[e]._workInProgressVersionPrimary=null;na.length=0}var oa=x.ReactCurrentDispatcher,ia=x.ReactCurrentBatchConfig,aa=0,la=null,sa=null,ca=null,ua=!1,da=!1,pa=0,fa=0;function ma(){throw Error(i(321))}function ha(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return!1;return!0}function ga(e,t,n,r,o,a){if(aa=a,la=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oa.current=null===e||null===e.memoizedState?Za:el,e=n(r,o),da){a=0;
vendor: 4,425 bytes, line 2
2do{if(da=!1,pa=0,25<=a)throw Error(i(301));a+=1,ca=sa=null,t.updateQueue=null,oa.current=tl,e=n(r,o)}while(da)}if(oa.current=Ja,t=null!==sa&&null!==sa.next,aa=0,ca=sa=la=null,ua=!1,t)throw Error(i(300));return e}function ba(){var e=0!==pa;return pa=0,e}function va(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ca?la.memoizedState=ca=e:ca=ca.next=e,ca}function ya(){if(null===sa){var e=la.alternate;e=null!==e?e.memoizedState:null}else e=sa.next;var t=null===ca?la.memoizedState:ca.next;if(null!==t)ca=t,sa=e;else{if(null===e)throw Error(i(310));e={memoizedState:(sa=e).memoizedState,baseState:sa.baseState,baseQueue:sa.baseQueue,queue:sa.queue,next:null},null===ca?la.memoizedState=ca=e:ca=ca.next=e}return ca}function xa(e,t){return"function"===typeof t?t(e):t}function wa(e){var t=ya(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=sa,o=r.baseQueue,a=n.pending;if(null!==a){if(null!==o){var l=o.next;o.next=a.next,a.next=l}r.baseQueue=o=a,n.pending=null}if(null!==o){a=o.next,r=r.baseState;var s=l=null,c=null,u=a;do{var d=u.lane;if((aa&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(s=c=p,l=r):c=c.next=p,la.lanes|=d,Ns|=d}u=u.next}while(null!==u&&u!==a);null===c?l=r:c.next=s,lr(r,t.memoizedState)||(yl=!0),t.memoizedState=r,t.baseState=l,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{a=o.lane,la.lanes|=a,Ns|=a,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ea(e){var t=ya(),n=t.queue;if(null===n)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,a=t.memoizedState;if(null!==o){n.pending=null;var l=o=o.next;do{a=e(a,l.action),l=l.next}while(l!==o);lr(a,t.memoizedState)||(yl=!0),t.memoizedState=a,null===t.baseQueue&&(t.baseState=a),n.lastRenderedState=a}return[a,r]}function _a(){}function ka(e,t){var n=la,r=ya(),o=t(),a=!lr(r.memoizedState,o);if(a&&(r.memoizedState=o,yl=!0),r=r.queue,Na(Sa.bind(null,n,r,e),[e]),r.getSnapshot!==t||a||null!==ca&&1&ca.memoizedState.tag){if(n.flags|=2048,Ia(9,Ca.bind(null,n,r,o,t),void 0,null),null===As)throw Error(i(349));0!==(30&aa)||Ta(n,t,o)}return o}function Ta(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=la.updateQueue)?(t={lastEffect:null,stores:null},la.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ca(e,t,n,r){t.value=n,t.getSnapshot=r,Pa(t)&&Aa(e)}function Sa(e,t,n){return n((function(){Pa(t)&&Aa(e)}))}function Pa(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lr(e,n)}catch(r){return!0}}function Aa(e){var t=zi(e,1);null!==t&&nc(t,e,1,-1)}function Ra(e){var t=va();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:xa,lastRenderedState:e},t.queue=e,e=e.dispatch=Ka.bind(null,la,e),[t.memoizedState,e]}function Ia(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=la.updateQueue)?(t={lastEffect:null,stores:null},la.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function La(){return ya().memoizedState}function Oa(e,t,n,r){var o=va();la.flags|=e,o.memoizedState=Ia(1|t,n,void 0,void 0===r?null:r)}function ja(e,t,n,r){var o=ya();r=void 0===r?null:r;var i=void 0;if(null!==sa){var a=sa.memoizedState;if(i=a.destroy,null!==r&&ha(r,a.deps))return void(o.memoizedState=Ia(t,n,i,r))}la.flags|=e,o.memoizedState=Ia(1|t,n,i,r)}function za(e,t){return Oa(8390656,8,e,t)}function Na(e,t){return ja(2048,8,e,t)}function Ma(e,t){return ja(4,2,e,t)}function Da(e,t){return ja(4,4,e,t)}function Ua(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Fa(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,ja(4,4,Ua.bind(null,t,e),n)}function $a(){}function Va(e,t){var n=ya();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ha(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ba(e,t){var n=ya();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ha(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}
2function Ha(e,t,n){return 0===(21&aa)?(e.baseState&&(e.baseState=!1,yl=!0),e.memoizedState=n):(lr(n,t)||(n=ht(),la.lanes|=n,Ns|=n,e.baseState=!0),t)}function Ga(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=ia.transition;ia.transition={};try{e(!1),t()}finally{yt=n,ia.transition=r}}function Ya(){return ya().memoizedState}function Wa(e,t,n){var r=tc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},qa(e))Qa(t,n);else if(null!==(n=ji(e,t,n,r))){nc(n,e,r,ec()),Xa(n,t,r)}}function Ka(e,t,n){var r=tc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(qa(e))Qa(t,o);else{var i=e.alternate;if(0===e.lanes&&(null===i||0===i.lanes)&&null!==(i=t.lastRenderedReducer))try{var a=t.lastRenderedState,l=i(a,n);if(o.hasEagerState=!0,o.eagerState=l,lr(l,a)){var s=t.interleaved;return null===s?(o.next=o,Oi(t)):(o.next=s.next,s.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=ji(e,t,o,r))&&(nc(n,e,r,o=ec()),Xa(n,t,r))}}function qa(e){var t=e.alternate;return e===la||null!==t&&t===la}function Qa(e,t){da=ua=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xa(e,t,n){if(0!==(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}var Ja={readContext:Ii,useCallback:ma,useContext:ma,useEffect:ma,useImperativeHandle:ma,useInsertionEffect:ma,useLayoutEffect:ma,useMemo:ma,useReducer:ma,useRef:ma,useState:ma,useDebugValue:ma,useDeferredValue:ma,useTransition:ma,useMutableSource:ma,useSyncExternalStore:ma,useId:ma,unstable_isNewReconciler:!1},Za={readContext:Ii,useCallback:function(e,t){return va().memoizedState=[e,void 0===t?null:t],e},useContext:Ii,useEffect:za,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Oa(4194308,4,Ua.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Oa(4194308,4,e,t)},useInsertionEffect:function(e,t){return Oa(4,2,e,t)},useMemo:function(e,t){var n=va();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=va();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wa.bind(null,la,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},va().memoizedState=e},useState:Ra,useDebugValue:$a,useDeferredValue:function(e){return va().memoizedState=e},useTransition:function(){var e=Ra(!1),t=e[0];return e=Ga.bind(null,e[1]),va().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=la,o=va();if(ii){if(void 0===n)throw Error(i(407));n=n()}else{if(n=t(),null===As)throw Error(i(349));0!==(30&aa)||Ta(r,t,n)}o.memoizedState=n;var a={value:n,getSnapshot:t};return o.queue=a,za(Sa.bind(null,r,a,e),[e]),r.flags|=2048,Ia(9,Ca.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=va(),t=As.identifierPrefix;if(ii){var n=Jo;t=":"+t+"R"+(n=(Xo&~(1<<32-at(Xo)-1)).toString(32)+n),0<(n=pa++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=fa++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},el={readContext:Ii,useCallback:Va,useContext:Ii,useEffect:Na,useImperativeHandle:Fa,useInsertionEffect:Ma,useLayoutEffect:Da,useMemo:Ba,useReducer:wa,useRef:La,useState:function(){return wa(xa)},useDebugValue:$a,useDeferredValue:function(e){return Ha(ya(),sa.memoizedState,e)},useTransition:function(){return[wa(xa)[0],ya().memoizedState]},useMutableSource:_a,useSyncExternalStore:ka,useId:Ya,unstable_isNewReconciler:!1},tl={readContext:Ii,useCallback:Va,useContext:Ii,useEffect:Na,useImperativeHandle:Fa,useInsertionEffect:Ma,useLayoutEffect:Da,useMemo:Ba,useReducer:Ea,useRef:La,useState:function(){return Ea(xa)},useDebugValue:$a,useDeferredValue:function(e){var t=ya();return null===sa?t.memoizedState=e:Ha(t,sa.memoizedState,e)},useTransition:function(){return[Ea(xa)[0],ya().memoizedState]},useMutableSource:_a,useSyncExternalStore:ka,useId:Ya,unstable_isNewReconciler:!1};function nl(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}function rl(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var ol={isMounted:function(e){return!!(e=e._reactInternals)&&Ve(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),i=Ui(r,o);i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Fi(e,i,o))&&(nc(t,e,o,r),$i(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),i=Ui(r,o);i.tag=1,i.payload=t,void 0!==n&&null!==n&&(i.callback=n),null!==(t=Fi(e,i,o))&&(nc(t,e,o,r),$i(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=Ui(n,r);o.tag=2,void 0!==t&&null!==t&&(o.callback=t),null!==(t=Fi(e,o,r))&&(nc(t,e,r,n),$i(t,e,r))}};function il(e,t,n,r,o,i,a){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,i,a):!t.prototype||!t.prototype.isPureReactComponent||(!sr(n,r)||!sr(o,i))}function al(e,t,n){var r=!1,o=Po,i=t.contextType;return"object"===typeof i&&null!==i?i=Ii(i):(o=Oo(t)?Io:Ao.current,i=(r=null!==(r=t.contextTypes)&&void 0!==r)?Lo(e,o):Po),t=new t(n,i),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=ol,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=i),t}function ll(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&ol.enqueueReplaceState(t,t.state,null)}function sl(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Mi(e);var i=t.contextType;"object"===typeof i&&null!==i?o.context=Ii(i):(i=Oo(t)?Io:Ao.current,o.context=Lo(e,i)),o.state=e.memoizedState,"function"===typeof(i=t.getDerivedStateFromProps)&&(rl(e,t,i,n),o.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof o.getSnapshotBeforeUpdate||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||(t=o.state,"function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&ol.enqueueReplaceState(o,o.state,null),Bi(e,n,o,r),o.state=e.memoizedState),"function"===typeof o.componentDidMount&&(e.flags|=4194308)}function cl(e,t){try{var n="",r=t;do{n+=$(r),r=r.return}while(r);var o=n}catch(i){o="\nError generating stack: "+i.message+"\n"+i.stack}return{value:e,source:t,stack:o,digest:null}}function ul(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function dl(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var pl="function"===typeof WeakMap?WeakMap:Map;function fl(e,t,n){(n=Ui(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Hs||(Hs=!0,Gs=r),dl(0,t)},n}function ml(e,t,n){(n=Ui(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){dl(0,t)}}var i=e.stateNode;return null!==i&&"function"===typeof i.componentDidCatch&&(n.callback=function(){dl(0,t),"function"!==typeof r&&(null===Ys?Ys=new Set([this]):Ys.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hl(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new pl;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Tc.bind(null,e,t,n),t.then(e,e))}function gl(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bl(e,t,n,r,o){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ui(-1,1)).tag=2,Fi(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var vl=x.ReactCurrentOwner,yl=!1;function xl(e,t,n,r){t.child=null===e?Ei(t,null,n,r):wi(t,e.child,n,r)}function wl(e,t,n,r,o){n=n.render;var i=t.ref;return Ri(t,o),r=ga(e,t,n,r,i,o),n=ba(),null===e||yl?(ii&&n&&ti(t),t.flags|=1,xl(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function El(e,t,n,r,o){if(null===e){var i=n.type;return"function"!==typeof i||Lc(i)||void 0!==i.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=jc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=i,_l(e,t,i,r,o))}if(i=e.child,0===(e.lanes&o)){var a=i.memoizedProps;if((n=null!==(n=n.compare)?n:sr)(a,r)&&e.ref===t.ref)return Hl(e,t,o)}return t.flags|=1,(e=Oc(i,r)).ref=t.ref,e.return=t,t.child=e}function _l(e,t,n,r,o){if(null!==e){var i=e.memoizedProps;if(sr(i,r)&&e.ref===t.ref){if(yl=!1,t.pendingProps=r=i,0===(e.lanes&o))return t.lanes=e.lanes,Hl(e,t,o);0!==(131072&e.flags)&&(yl=!0)}}return Cl(e,t,n,r,o)}function kl(e,t,n){var r=t.pendingProps,o=r.children,i=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},So(Os,Ls),Ls|=n;else{if(0===(1073741824&n))return e=null!==i?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,So(Os,Ls),Ls|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==i?i.baseLanes:n,So(Os,Ls),Ls|=r}else null!==i?(r=i.baseLanes|n,t.memoizedState=null):r=n,So(Os,Ls),Ls|=r;return xl(e,t,o,n),t.child}function Tl(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}
2function Cl(e,t,n,r,o){var i=Oo(n)?Io:Ao.current;return i=Lo(t,i),Ri(t,o),n=ga(e,t,n,r,i,o),r=ba(),null===e||yl?(ii&&r&&ti(t),t.flags|=1,xl(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Hl(e,t,o))}function Sl(e,t,n,r,o){if(Oo(n)){var i=!0;Mo(t)}else i=!1;if(Ri(t,o),null===t.stateNode)Bl(e,t),al(t,n,r),sl(t,n,r,o),r=!0;else if(null===e){var a=t.stateNode,l=t.memoizedProps;a.props=l;var s=a.context,c=n.contextType;"object"===typeof c&&null!==c?c=Ii(c):c=Lo(t,c=Oo(n)?Io:Ao.current);var u=n.getDerivedStateFromProps,d="function"===typeof u||"function"===typeof a.getSnapshotBeforeUpdate;d||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(l!==r||s!==c)&&ll(t,a,r,c),Ni=!1;var p=t.memoizedState;a.state=p,Bi(t,r,a,o),s=t.memoizedState,l!==r||p!==s||Ro.current||Ni?("function"===typeof u&&(rl(t,n,u,r),s=t.memoizedState),(l=Ni||il(t,n,l,r,p,s,c))?(d||"function"!==typeof a.UNSAFE_componentWillMount&&"function"!==typeof a.componentWillMount||("function"===typeof a.componentWillMount&&a.componentWillMount(),"function"===typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),"function"===typeof a.componentDidMount&&(t.flags|=4194308)):("function"===typeof a.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),a.props=r,a.state=s,a.context=c,r=l):("function"===typeof a.componentDidMount&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,Di(e,t),l=t.memoizedProps,c=t.type===t.elementType?l:nl(t.type,l),a.props=c,d=t.pendingProps,p=a.context,"object"===typeof(s=n.contextType)&&null!==s?s=Ii(s):s=Lo(t,s=Oo(n)?Io:Ao.current);var f=n.getDerivedStateFromProps;(u="function"===typeof f||"function"===typeof a.getSnapshotBeforeUpdate)||"function"!==typeof a.UNSAFE_componentWillReceiveProps&&"function"!==typeof a.componentWillReceiveProps||(l!==d||p!==s)&&ll(t,a,r,s),Ni=!1,p=t.memoizedState,a.state=p,Bi(t,r,a,o);var m=t.memoizedState;l!==d||p!==m||Ro.current||Ni?("function"===typeof f&&(rl(t,n,f,r),m=t.memoizedState),(c=Ni||il(t,n,c,r,p,m,s)||!1)?(u||"function"!==typeof a.UNSAFE_componentWillUpdate&&"function"!==typeof a.componentWillUpdate||("function"===typeof a.componentWillUpdate&&a.componentWillUpdate(r,m,s),"function"===typeof a.UNSAFE_componentWillUpdate&&a.UNSAFE_componentWillUpdate(r,m,s)),"function"===typeof a.componentDidUpdate&&(t.flags|=4),"function"===typeof a.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof a.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),a.props=r,a.state=m,a.context=s,r=c):("function"!==typeof a.componentDidUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!==typeof a.getSnapshotBeforeUpdate||l===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Pl(e,t,n,r,i,o)}function Pl(e,t,n,r,o,i){Tl(e,t);var a=0!==(128&t.flags);if(!r&&!a)return o&&Do(t,n,!1),Hl(e,t,i);r=t.stateNode,vl.current=t;var l=a&&"function"!==typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&a?(t.child=wi(t,e.child,null,i),t.child=wi(t,null,l,i)):xl(e,t,l,i),t.memoizedState=r.state,o&&Do(t,n,!0),t.child}function Al(e){var t=e.stateNode;t.pendingContext?zo(0,t.pendingContext,t.pendingContext!==t.context):t.context&&zo(0,t.context,!1),Qi(e,t.containerInfo)}function Rl(e,t,n,r,o){return mi(),hi(o),t.flags|=256,xl(e,t,n,r),t.child}var Il,Ll,Ol,jl,zl={dehydrated:null,treeContext:null,retryLane:0};function Nl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ml(e,t,n){var r,o=t.pendingProps,a=ea.current,l=!1,s=0!==(128&t.flags);if((r=s)||(r=(null===e||null!==e.memoizedState)&&0!==(2&a)),r?(l=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(a|=1),So(ea,1&a),null===e)return ui(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(s=o.children,e=o.fallback,l?(o=t.mode,l=t.child,s={mode:"hidden",children:s},0===(1&o)&&null!==l?(l.childLanes=0,l.pendingProps=s):l=Nc(s,o,0,null),e=zc(e,o,n,null),l.return=t,e.return=t,l.sibling=e,t.child=l,t.child.memoizedState=Nl(n),t.memoizedState=zl,e):Dl(t,s));if(null!==(a=e.memoizedState)&&null!==(r=a.dehydrated))return function(e,t,n,r,o,a,l){if(n)return 256&t.flags?(t.flags&=-257,Ul(e,t,l,r=ul(Error(i(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(a=r.fallback,o=t.mode,r=Nc({mode:"visible",children:r.children}
vendor: 5,026 bytes, line 2
2,o,0,null),(a=zc(a,o,l,null)).flags|=2,r.return=t,a.return=t,r.sibling=a,t.child=r,0!==(1&t.mode)&&wi(t,e.child,null,l),t.child.memoizedState=Nl(l),t.memoizedState=zl,a);if(0===(1&t.mode))return Ul(e,t,l,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var s=r.dgst;return r=s,Ul(e,t,l,r=ul(a=Error(i(419)),r,void 0))}if(s=0!==(l&e.childLanes),yl||s){if(null!==(r=As)){switch(l&-l){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!==(o&(r.suspendedLanes|l))?0:o)&&o!==a.retryLane&&(a.retryLane=o,zi(e,o),nc(r,e,o,-1))}return hc(),Ul(e,t,l,r=ul(Error(i(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Sc.bind(null,e),o._reactRetry=t,null):(e=a.treeContext,oi=co(o.nextSibling),ri=t,ii=!0,ai=null,null!==e&&(Ko[qo++]=Xo,Ko[qo++]=Jo,Ko[qo++]=Qo,Xo=e.id,Jo=e.overflow,Qo=t),t=Dl(t,r.children),t.flags|=4096,t)}(e,t,s,o,r,a,n);if(l){l=o.fallback,s=t.mode,r=(a=e.child).sibling;var c={mode:"hidden",children:o.children};return 0===(1&s)&&t.child!==a?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Oc(a,c)).subtreeFlags=14680064&a.subtreeFlags,null!==r?l=Oc(r,l):(l=zc(l,s,n,null)).flags|=2,l.return=t,o.return=t,o.sibling=l,t.child=o,o=l,l=t.child,s=null===(s=e.child.memoizedState)?Nl(n):{baseLanes:s.baseLanes|n,cachePool:null,transitions:s.transitions},l.memoizedState=s,l.childLanes=e.childLanes&~n,t.memoizedState=zl,o}return e=(l=e.child).sibling,o=Oc(l,{mode:"visible",children:o.children}),0===(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Dl(e,t){return(t=Nc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Ul(e,t,n,r){return null!==r&&hi(r),wi(t,e.child,null,n),(e=Dl(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Fl(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ai(e.return,t,n)}function $l(e,t,n,r,o){var i=e.memoizedState;null===i?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=r,i.tail=n,i.tailMode=o)}function Vl(e,t,n){var r=t.pendingProps,o=r.revealOrder,i=r.tail;if(xl(e,t,r.children,n),0!==(2&(r=ea.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Fl(e,n,t);else if(19===e.tag)Fl(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(So(ea,r),0===(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ta(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),$l(t,!1,o,n,i);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ta(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}$l(t,!0,n,null,i);break;case"together":$l(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Bl(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Hl(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ns|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(i(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gl(e,t){if(!ii)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Yl(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Wl(e,t,n){var r=t.pendingProps;switch(ni(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Yl(t),null;case 1:case 17:return Oo(t.type)&&jo(),Yl(t),null;case 3:return r=t.stateNode,Xi(),Co(Ro),Co(Ao),ra(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(pi(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==ai&&(ac(ai),ai=null))),Ll(e,t),Yl(t),null;
2case 5:Zi(t);var o=qi(Ki.current);if(n=t.type,null!==e&&null!=t.stateNode)Ol(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(i(166));return Yl(t),null}if(e=qi(Yi.current),pi(t)){r=t.stateNode,n=t.type;var a=t.memoizedProps;switch(r[fo]=t,r[mo]=a,e=0!==(1&t.mode),n){case"dialog":Ur("cancel",r),Ur("close",r);break;case"iframe":case"object":case"embed":Ur("load",r);break;case"video":case"audio":for(o=0;o<zr.length;o++)Ur(zr[o],r);break;case"source":Ur("error",r);break;case"img":case"image":case"link":Ur("error",r),Ur("load",r);break;case"details":Ur("toggle",r);break;case"input":Q(r,a),Ur("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!a.multiple},Ur("invalid",r);break;case"textarea":oe(r,a),Ur("invalid",r)}for(var s in ve(n,a),o=null,a)if(a.hasOwnProperty(s)){var c=a[s];"children"===s?"string"===typeof c?r.textContent!==c&&(!0!==a.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",c]):"number"===typeof c&&r.textContent!==""+c&&(!0!==a.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",""+c
vendor: 7,898 bytes, line 2
2]):l.hasOwnProperty(s)&&null!=c&&"onScroll"===s&&Ur("scroll",r)}switch(n){case"input":Y(r),Z(r,a,!0);break;case"textarea":Y(r),ae(r);break;case"select":case"option":break;default:"function"===typeof a.onClick&&(r.onclick=Zr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{s=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=s.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=s.createElement(n,{is:r.is}):(e=s.createElement(n),"select"===n&&(s=e,r.multiple?s.multiple=!0:r.size&&(s.size=r.size))):e=s.createElementNS(e,n),e[fo]=t,e[mo]=r,Il(e,t,!1,!1),t.stateNode=e;e:{switch(s=ye(n,r),n){case"dialog":Ur("cancel",e),Ur("close",e),o=r;break;case"iframe":case"object":case"embed":Ur("load",e),o=r;break;case"video":case"audio":for(o=0;o<zr.length;o++)Ur(zr[o],e);o=r;break;case"source":Ur("error",e),o=r;break;case"img":case"image":case"link":Ur("error",e),Ur("load",e),o=r;break;case"details":Ur("toggle",e),o=r;break;case"input":Q(e,r),o=q(e,r),Ur("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=M({},r,{value:void 0}),Ur("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Ur("invalid",e)}for(a in ve(n,o),c=o)if(c.hasOwnProperty(a)){var u=c[a];"style"===a?ge(e,u):"dangerouslySetInnerHTML"===a?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===a?"string"===typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"===typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==a&&"suppressHydrationWarning"!==a&&"autoFocus"!==a&&(l.hasOwnProperty(a)?null!=u&&"onScroll"===a&&Ur("scroll",e):null!=u&&y(e,a,u,s))}switch(n){case"input":Y(e),Z(e,r,!1);break;case"textarea":Y(e),ae(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(a=r.value)?ne(e,!!r.multiple,a,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"===typeof o.onClick&&(e.onclick=Zr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Yl(t),null;case 6:if(e&&null!=t.stateNode)jl(e,t,e.memoizedProps,r);else{if("string"!==typeof r&&null===t.stateNode)throw Error(i(166));if(n=qi(Ki.current),qi(Yi.current),pi(t)){if(r=t.stateNode,n=t.memoizedProps,r[fo]=t,(a=r.nodeValue!==n)&&null!==(e=ri))switch(e.tag){case 3:Jr(r.nodeValue,n,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,0!==(1&e.mode))}a&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[fo]=t,t.stateNode=r}return Yl(t),null;case 13:if(Co(ea),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ii&&null!==oi&&0!==(1&t.mode)&&0===(128&t.flags))fi(),mi(),t.flags|=98560,a=!1;else if(a=pi(t),null!==r&&null!==r.dehydrated){if(null===e){if(!a)throw Error(i(318));if(!(a=null!==(a=t.memoizedState)?a.dehydrated:null))throw Error(i(317));a[fo]=t}else mi(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Yl(t),a=!1}else null!==ai&&(ac(ai),ai=null),a=!0;if(!a)return 65536&t.flags?t:null}return 0!==(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!==(1&t.mode)&&(null===e||0!==(1&ea.current)?0===js&&(js=3):hc())),null!==t.updateQueue&&(t.flags|=4),Yl(t),null);case 4:return Xi(),Ll(e,t),null===e&&Vr(t.stateNode.containerInfo),Yl(t),null;case 10:return Pi(t.type._context),Yl(t),null;case 19:if(Co(ea),null===(a=t.memoizedState))return Yl(t),null;if(r=0!==(128&t.flags),null===(s=a.rendering))if(r)Gl(a,!1);else{if(0!==js||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(s=ta(e))){for(t.flags|=128,Gl(a,!1),null!==(r=s.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(a=n).flags&=14680066,null===(s=a.alternate)?(a.childLanes=0,a.lanes=e,a.child=null,a.subtreeFlags=0,a.memoizedProps=null,a.memoizedState=null,a.updateQueue=null,a.dependencies=null,a.stateNode=null):(a.childLanes=s.childLanes,a.lanes=s.lanes,a.child=s.child,a.subtreeFlags=0,a.deletions=null,a.memoizedProps=s.memoizedProps,a.memoizedState=s.memoizedState,a.updateQueue=s.updateQueue,a.type=s.type,e=s.dependencies,a.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return So(ea,1&ea.current|2),t.child}e=e.sibling}null!==a.tail&&Xe()>Vs&&(t.flags|=128,r=!0,Gl(a,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ta(s))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gl(a,!0),null===a.tail&&"hidden"===a.tailMode&&!s.alternate&&!ii)return Yl(t),null}else 2*Xe()-a.renderingStartTime>Vs&&1073741824!==n&&(t.flags|=128,r=!0,Gl(a,!1),t.lanes=4194304);a.isBackwards?(s.sibling=t.child,t.child=s):(null!==(n=a.last)?n.sibling=s:t.child=s,a.last=s)}return null!==a.tail?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Xe(),t.sibling=null,n=ea.current,So(ea,r?1&n|2:1&n),t):(Yl(t),null);case 22:case 23:return dc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!==(1&t.mode)?0!==(1073741824&Ls)&&(Yl(t),6&t.subtreeFlags&&(t.flags|=8192)):Yl(t),null;case 24:case 25:return null}throw Error(i(156,t.tag))}function Kl(e,t){switch(ni(t),t.tag){case 1:return Oo(t.type)&&jo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Xi(),Co(Ro),Co(Ao),ra(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Zi(t),null;case 13:if(Co(ea),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(i(340));mi()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Co(ea),null;case 4:return Xi(),null;case 10:return Pi(t.type._context),null;case 22:case 23:return dc(),null;default:return null}}Il=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ll=function(){},Ol=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,qi(Yi.current);var i,a=null;switch(n){case"input":o=q(e,o),r=q(e,r),a=[];break;case"select":o=M({},o,{value:void 0}),r=M({},r,{value:void 0}),a=[];break;case"textarea":o=re(e,o),r=re(e,r),a=[];break;default:"function"!==typeof o.onClick&&"function"===typeof r.onClick&&(e.onclick=Zr)}for(u in ve(n,r),n=null,o)if(!r.hasOwnProperty(u)&&o.hasOwnProperty(u)&&null!=o[u])if("style"===u){var s=o[u];for(i in s)s.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(l.hasOwnProperty(u)?a||(a=[]):(a=a||[]).push(u,null));for(u in r){var c=r[u];if(s=null!=o?o[u]:void 0,r.hasOwnProperty(u)&&c!==s&&(null!=c||null!=s))if("style"===u)if(s){for(i in s)!s.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&s[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(a||(a=[]),a.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,s=s?s.__html:void 0,null!=c&&s!==c&&(a=a||[]).push(u,c)):"children"===u?"string"!==typeof c&&"number"!==typeof c||(a=a||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(l.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Ur("scroll",e),a||s===c||(a=[])):(a=a||[]).push(u,c))}n&&(a=a||[]).push("style",n);var u=a;(t.updateQueue=u)&&(t.flags|=4)}},jl=function(e,t,n,r){n!==r&&(t.flags|=4)};var ql=!1,Ql=!1,Xl="function"===typeof WeakSet?WeakSet:Set,Jl=null;function Zl(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(r){kc(e,t,r)}else n.current=null}
vendor: 4,136 bytes, line 2
2function es(e,t,n){try{n()}catch(r){kc(e,t,r)}}var ts=!1;function ns(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var i=o.destroy;o.destroy=void 0,void 0!==i&&es(t,n,i)}o=o.next}while(o!==r)}}function rs(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function os(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function is(e){var t=e.alternate;null!==t&&(e.alternate=null,is(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[fo],delete t[mo],delete t[go],delete t[bo],delete t[vo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function as(e){return 5===e.tag||3===e.tag||4===e.tag}function ls(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||as(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function ss(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=Zr));else if(4!==r&&null!==(e=e.child))for(ss(e,t,n),e=e.sibling;null!==e;)ss(e,t,n),e=e.sibling}function cs(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(cs(e,t,n),e=e.sibling;null!==e;)cs(e,t,n),e=e.sibling}var us=null,ds=!1;function ps(e,t,n){for(n=n.child;null!==n;)fs(e,t,n),n=n.sibling}function fs(e,t,n){if(it&&"function"===typeof it.onCommitFiberUnmount)try{it.onCommitFiberUnmount(ot,n)}catch(l){}switch(n.tag){case 5:Ql||Zl(n,t);case 6:var r=us,o=ds;us=null,ps(e,t,n),ds=o,null!==(us=r)&&(ds?(e=us,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):us.removeChild(n.stateNode));break;case 18:null!==us&&(ds?(e=us,n=n.stateNode,8===e.nodeType?so(e.parentNode,n):1===e.nodeType&&so(e,n),Vt(e)):so(us,n.stateNode));break;case 4:r=us,o=ds,us=n.stateNode.containerInfo,ds=!0,ps(e,t,n),us=r,ds=o;break;case 0:case 11:case 14:case 15:if(!Ql&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var i=o,a=i.destroy;i=i.tag,void 0!==a&&(0!==(2&i)||0!==(4&i))&&es(n,t,a),o=o.next}while(o!==r)}ps(e,t,n);break;case 1:if(!Ql&&(Zl(n,t),"function"===typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){kc(n,t,l)}ps(e,t,n);break;case 21:ps(e,t,n);break;case 22:1&n.mode?(Ql=(r=Ql)||null!==n.memoizedState,ps(e,t,n),Ql=r):ps(e,t,n);break;default:ps(e,t,n)}}function ms(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xl),t.forEach((function(t){var r=Pc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hs(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var a=e,l=t,s=l;e:for(;null!==s;){switch(s.tag){case 5:us=s.stateNode,ds=!1;break e;case 3:case 4:us=s.stateNode.containerInfo,ds=!0;break e}s=s.return}if(null===us)throw Error(i(160));fs(a,l,o),us=null,ds=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(u){kc(o,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gs(t,e),t=t.sibling}function gs(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hs(t,e),bs(e),4&r){try{ns(3,e,e.return),rs(3,e)}catch(g){kc(e,e.return,g)}try{ns(5,e,e.return)}catch(g){kc(e,e.return,g)}}break;case 1:hs(t,e),bs(e),512&r&&null!==n&&Zl(n,n.return);break;case 5:if(hs(t,e),bs(e),512&r&&null!==n&&Zl(n,n.return),32&e.flags){var o=e.stateNode;try{pe(o,"")}catch(g){kc(e,e.return,g)}}if(4&r&&null!=(o=e.stateNode)){var a=e.memoizedProps,l=null!==n?n.memoizedProps:a,s=e.type,c=e.updateQueue;
vendor: 10,182 bytes, line 2
2if(e.updateQueue=null,null!==c)try{"input"===s&&"radio"===a.type&&null!=a.name&&X(o,a),ye(s,l);var u=ye(s,a);for(l=0;l<c.length;l+=2){var d=c[l],p=c[l+1];"style"===d?ge(o,p):"dangerouslySetInnerHTML"===d?de(o,p):"children"===d?pe(o,p):y(o,d,p,u)}switch(s){case"input":J(o,a);break;case"textarea":ie(o,a);break;case"select":var f=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!a.multiple;var m=a.value;null!=m?ne(o,!!a.multiple,m,!1):f!==!!a.multiple&&(null!=a.defaultValue?ne(o,!!a.multiple,a.defaultValue,!0):ne(o,!!a.multiple,a.multiple?[]:"",!1))}o[mo]=a}catch(g){kc(e,e.return,g)}}break;case 6:if(hs(t,e),bs(e),4&r){if(null===e.stateNode)throw Error(i(162));o=e.stateNode,a=e.memoizedProps;try{o.nodeValue=a}catch(g){kc(e,e.return,g)}}break;case 3:if(hs(t,e),bs(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Vt(t.containerInfo)}catch(g){kc(e,e.return,g)}break;case 4:default:hs(t,e),bs(e);break;case 13:hs(t,e),bs(e),8192&(o=e.child).flags&&(a=null!==o.memoizedState,o.stateNode.isHidden=a,!a||null!==o.alternate&&null!==o.alternate.memoizedState||($s=Xe())),4&r&&ms(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ql=(u=Ql)||d,hs(t,e),Ql=u):hs(t,e),bs(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!==(1&e.mode))for(Jl=e,d=e.child;null!==d;){for(p=Jl=d;null!==Jl;){switch(m=(f=Jl).child,f.tag){case 0:case 11:case 14:case 15:ns(4,f,f.return);break;case 1:Zl(f,f.return);var h=f.stateNode;if("function"===typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){kc(r,n,g)}}break;case 5:Zl(f,f.return);break;case 22:if(null!==f.memoizedState){ws(p);continue}}null!==m?(m.return=f,Jl=m):ws(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{o=p.stateNode,u?"function"===typeof(a=o.style).setProperty?a.setProperty("display","none","important"):a.display="none":(s=p.stateNode,l=void 0!==(c=p.memoizedProps.style)&&null!==c&&c.hasOwnProperty("display")?c.display:null,s.style.display=he("display",l))}catch(g){kc(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){kc(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hs(t,e),bs(e),4&r&&ms(e);case 21:}}function bs(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(as(n)){var r=n;break e}n=n.return}throw Error(i(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(pe(o,""),r.flags&=-33),cs(e,ls(e),o);break;case 3:case 4:var a=r.stateNode.containerInfo;ss(e,ls(e),a);break;default:throw Error(i(161))}}catch(l){kc(e,e.return,l)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function vs(e,t,n){Jl=e,ys(e,t,n)}function ys(e,t,n){for(var r=0!==(1&e.mode);null!==Jl;){var o=Jl,i=o.child;if(22===o.tag&&r){var a=null!==o.memoizedState||ql;if(!a){var l=o.alternate,s=null!==l&&null!==l.memoizedState||Ql;l=ql;var c=Ql;if(ql=a,(Ql=s)&&!c)for(Jl=o;null!==Jl;)s=(a=Jl).child,22===a.tag&&null!==a.memoizedState?Es(o):null!==s?(s.return=a,Jl=s):Es(o);for(;null!==i;)Jl=i,ys(i,t,n),i=i.sibling;Jl=o,ql=l,Ql=c}xs(e)}else 0!==(8772&o.subtreeFlags)&&null!==i?(i.return=o,Jl=i):xs(e)}}function xs(e){for(;null!==Jl;){var t=Jl;if(0!==(8772&t.flags)){var n=t.alternate;try{if(0!==(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ql||rs(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ql)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:nl(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var a=t.updateQueue;null!==a&&Hi(t,a,r);break;case 3:var l=t.updateQueue;if(null!==l){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Hi(t,l,n)}break;case 5:var s=t.stateNode;if(null===n&&4&t.flags){n=s;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&Vt(p)}}}break;default:throw Error(i(163))}Ql||512&t.flags&&os(t)}catch(f){kc(t,t.return,f)}}if(t===e){Jl=null;break}if(null!==(n=t.sibling)){n.return=t.return,Jl=n;break}Jl=t.return}}function ws(e){for(;null!==Jl;){var t=Jl;if(t===e){Jl=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Jl=n;break}Jl=t.return}}function Es(e){for(;null!==Jl;){var t=Jl;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rs(4,t)}catch(s){kc(t,n,s)}break;case 1:var r=t.stateNode;if("function"===typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(s){kc(t,o,s)}}var i=t.return;try{os(t)}catch(s){kc(t,i,s)}break;case 5:var a=t.return;try{os(t)}catch(s){kc(t,a,s)}}}catch(s){kc(t,t.return,s)}if(t===e){Jl=null;break}var l=t.sibling;if(null!==l){l.return=t.return,Jl=l;break}Jl=t.return}}var _s,ks=Math.ceil,Ts=x.ReactCurrentDispatcher,Cs=x.ReactCurrentOwner,Ss=x.ReactCurrentBatchConfig,Ps=0,As=null,Rs=null,Is=0,Ls=0,Os=To(0),js=0,zs=null,Ns=0,Ms=0,Ds=0,Us=null,Fs=null,$s=0,Vs=1/0,Bs=null,Hs=!1,Gs=null,Ys=null,Ws=!1,Ks=null,qs=0,Qs=0,Xs=null,Js=-1,Zs=0;function ec(){return 0!==(6&Ps)?Xe():-1!==Js?Js:Js=Xe()}function tc(e){return 0===(1&e.mode)?1:0!==(2&Ps)&&0!==Is?Is&-Is:null!==gi.transition?(0===Zs&&(Zs=ht()),Zs):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Qt(e.type)}function nc(e,t,n,r){if(50<Qs)throw Qs=0,Xs=null,Error(i(185));bt(e,n,r),0!==(2&Ps)&&e===As||(e===As&&(0===(2&Ps)&&(Ms|=n),4===js&&lc(e,Is)),rc(e,r),1===n&&0===Ps&&0===(1&t.mode)&&(Vs=Xe()+500,Fo&&Bo()))}function rc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,i=e.pendingLanes;0<i;){var a=31-at(i),l=1<<a,s=o[a];-1===s?0!==(l&n)&&0===(l&r)||(o[a]=ft(l,t)):s<=t&&(e.expiredLanes|=l),i&=~l}}(e,t);var r=pt(e,e===As?Is:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){Fo=!0,Vo(e)}(sc.bind(null,e)):Vo(sc.bind(null,e)),ao((function(){0===(6&Ps)&&Bo()})),n=null;else{switch(xt(r)){case 1:n=Ze;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ac(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Js=-1,Zs=0,0!==(6&Ps))throw Error(i(327));var n=e.callbackNode;if(Ec()&&e.callbackNode!==n)return null;var r=pt(e,e===As?Is:0);if(0===r)return null;if(0!==(30&r)||0!==(r&e.expiredLanes)||t)t=gc(e,r);else{t=r;var o=Ps;Ps|=2;var a=mc();for(As===e&&Is===t||(Bs=null,Vs=Xe()+500,pc(e,t));;)try{vc();break}catch(s){fc(e,s)}Si(),Ts.current=a,Ps=o,null!==Rs?t=0:(As=null,Is=0,t=js)}if(0!==t){if(2===t&&(0!==(o=mt(e))&&(r=o,t=ic(e,o))),1===t)throw n=zs,pc(e,0),lc(e,r),rc(e,Xe()),n;if(6===t)lc(e,r);else{if(o=e.current.alternate,0===(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],i=o.getSnapshot;o=o.value;try{if(!lr(i(),o))return!1}catch(l){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)&&(2===(t=gc(e,r))&&(0!==(a=mt(e))&&(r=a,t=ic(e,a))),1===t))throw n=zs,pc(e,0),lc(e,r),rc(e,Xe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(i(345));case 2:case 5:wc(e,Fs,Bs);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=$s+500-Xe())){if(0!==pt(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(wc.bind(null,e,Fs,Bs),t);break}wc(e,Fs,Bs);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var l=31-at(r);a=1<<l,(l=t[l])>o&&(o=l),r&=~a}if(r=o,10<(r=(120>(r=Xe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ks(r/1960))-r)){e.timeoutHandle=ro(wc.bind(null,e,Fs,Bs),r);break}wc(e,Fs,Bs);break;default:throw Error(i(329))}}}return rc(e,Xe()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=Us;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=gc(e,t))&&(t=Fs,Fs=n,null!==t&&ac(t)),e}function ac(e){null===Fs?Fs=e:Fs.push.apply(Fs,e)}function lc(e,t){for(t&=~Ds,t&=~Ms,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-at(t),r=1<<n;e[n]=-1,t&=~r}}function sc(e){if(0!==(6&Ps))throw Error(i(327));Ec();var t=pt(e,0);if(0===(1&t))return rc(e,Xe()),null;var n=gc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=zs,pc(e,0),lc(e,t),rc(e,Xe()),n;if(6===n)throw Error(i(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wc(e,Fs,Bs),rc(e,Xe()),null}function cc(e,t){var n=Ps;Ps|=1;try{return e(t)}finally{0===(Ps=n)&&(Vs=Xe()+500,Fo&&Bo())}}function uc(e){null!==Ks&&0===Ks.tag&&0===(6&Ps)&&Ec();var t=Ps;Ps|=1;var n=Ss.transition,r=yt;try{if(Ss.transition=null,yt=1,e)return e()}finally{yt=r,Ss.transition=n,0===(6&(Ps=t))&&Bo()}}function dc(){Ls=Os.current,Co(Os)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Rs)for(n=Rs.return;null!==n;){var r=n;switch(ni(r),r.tag){case 1:null!==(r=r.type.childContextTypes)&&void 0!==r&&jo();break;case 3:Xi(),Co(Ro),Co(Ao),ra();break;case 5:Zi(r);break;case 4:Xi();break;case 13:case 19:Co(ea);break;case 10:Pi(r.type._context);break;case 22:case 23:dc()}n=n.return}if(As=e,Rs=e=Oc(e.current,null),Is=Ls=t,js=0,zs=null,Ds=Ms=Ns=0,Fs=Us=null,null!==Li){for(t=0;t<Li.length;t++)if(null!==(r=(n=Li[t]).interleaved)){n.interleaved=null;var o=r.next,i=n.pending;if(null!==i){var a=i.next;i.next=o,r.next=a}n.pending=r}Li=null}return e}function fc(e,t){for(;;){var n=Rs;try{if(Si(),oa.current=Ja,ua){for(var r=la.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}ua=!1}
2if(aa=0,ca=sa=la=null,da=!1,pa=0,Cs.current=null,null===n||null===n.return){js=1,zs=t,Rs=null;break}e:{var a=e,l=n.return,s=n,c=t;if(t=Is,s.flags|=32768,null!==c&&"object"===typeof c&&"function"===typeof c.then){var u=c,d=s,p=d.tag;if(0===(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=gl(l);if(null!==m){m.flags&=-257,bl(m,l,s,0,t),1&m.mode&&hl(a,u,t),c=u;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(c),t.updateQueue=g}else h.add(c);break e}if(0===(1&t)){hl(a,u,t),hc();break e}c=Error(i(426))}else if(ii&&1&s.mode){var b=gl(l);if(null!==b){0===(65536&b.flags)&&(b.flags|=256),bl(b,l,s,0,t),hi(cl(c,s));break e}}a=c=cl(c,s),4!==js&&(js=2),null===Us?Us=[a]:Us.push(a),a=l;do{switch(a.tag){case 3:a.flags|=65536,t&=-t,a.lanes|=t,Vi(a,fl(0,c,t));break e;case 1:s=c;var v=a.type,y=a.stateNode;if(0===(128&a.flags)&&("function"===typeof v.getDerivedStateFromError||null!==y&&"function"===typeof y.componentDidCatch&&(null===Ys||!Ys.has(y)))){a.flags|=65536,t&=-t,a.lanes|=t,Vi(a,ml(a,s,t));break e}}a=a.return}while(null!==a)}xc(n)}catch(x){t=x,Rs===n&&null!==n&&(Rs=n=n.return);continue}break}}function mc(){var e=Ts.current;return Ts.current=Ja,null===e?Ja:e}function hc(){0!==js&&3!==js&&2!==js||(js=4),null===As||0===(268435455&Ns)&&0===(268435455&Ms)||lc(As,Is)}function gc(e,t){var n=Ps;Ps|=2;var r=mc();for(As===e&&Is===t||(Bs=null,pc(e,t));;)try{bc();break}catch(o){fc(e,o)}if(Si(),Ps=n,Ts.current=r,null!==Rs)throw Error(i(261));return As=null,Is=0,js}function bc(){for(;null!==Rs;)yc(Rs)}function vc(){for(;null!==Rs&&!qe();)yc(Rs)}function yc(e){var t=_s(e.alternate,e,Ls);e.memoizedProps=e.pendingProps,null===t?xc(e):Rs=t,Cs.current=null}function xc(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(32768&t.flags)){if(null!==(n=Wl(n,t,Ls)))return void(Rs=n)}else{if(null!==(n=Kl(n,t)))return n.flags&=32767,void(Rs=n);if(null===e)return js=6,void(Rs=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Rs=t);Rs=t=e}while(null!==t);0===js&&(js=5)}function wc(e,t,n){var r=yt,o=Ss.transition;try{Ss.transition=null,yt=1,function(e,t,n,r){do{Ec()}while(null!==Ks);if(0!==(6&Ps))throw Error(i(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(i(177));e.callbackNode=null,e.callbackPriority=0;var a=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-at(n),i=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~i}}(e,a),e===As&&(Rs=As=null,Is=0),0===(2064&n.subtreeFlags)&&0===(2064&n.flags)||Ws||(Ws=!0,Ac(tt,(function(){return Ec(),null}))),a=0!==(15990&n.flags),0!==(15990&n.subtreeFlags)||a){a=Ss.transition,Ss.transition=null;var l=yt;yt=1;var s=Ps;Ps|=4,Cs.current=null,function(e,t){if(eo=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch(w){n=null;break e}var l=0,s=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==o&&3!==p.nodeType||(s=l+o),p!==a||0!==r&&3!==p.nodeType||(c=l+r),3===p.nodeType&&(l+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===o&&(s=l),f===a&&++d===r&&(c=l),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===s||-1===c?null:{start:s,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Ht=!1,Jl=t;null!==Jl;)if(e=(t=Jl).child,0!==(1028&t.subtreeFlags)&&null!==e)e.return=t,Jl=e;else for(;null!==Jl;){t=Jl;try{var h=t.alternate;if(0!==(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,b=h.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:nl(t.type,g),b);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var x=t.stateNode.containerInfo;1===x.nodeType?x.textContent="":9===x.nodeType&&x.documentElement&&x.removeChild(x.documentElement);break;default:throw Error(i(163))}}catch(w){kc(t,t.return,w)}if(null!==(e=t.sibling)){e.return=t.return,Jl=e;break}Jl=t.return}h=ts,ts=!1}(e,n),gs(n,e),mr(to),Ht=!!eo,to=eo=null,e.current=n,vs(n,e,o),Qe(),Ps=s,yt=l,Ss.transition=a}else e.current=n;if(Ws&&(Ws=!1,Ks=e,qs=o),a=e.pendingLanes,0===a&&(Ys=null),function(e){if(it&&"function"===typeof it.onCommitFiberRoot)try{it.onCommitFiberRoot(ot,e,void 0,128===(128&e.current.flags))}catch(t){}}(n.stateNode),rc(e,Xe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],r(o.value,{componentStack:o.stack,digest:o.digest});if(Hs)throw Hs=!1,e=Gs,Gs=null,e;0!==(1&qs)&&0!==e.tag&&Ec(),a=e.pendingLanes,0!==(1&a)?e===Xs?Qs++:(Qs=0,Xs=e):Qs=0,Bo()}(e,t,n,r)}finally{Ss.transition=o,yt=r}return null}function Ec(){if(null!==Ks){var e=xt(qs),t=Ss.transition,n=yt;try{if(Ss.transition=null,yt=16>e?16:e,null===Ks)var r=!1;else{if(e=Ks,Ks=null,qs=0,0!==(6&Ps))throw Error(i(331));var o=Ps;for(Ps|=4,Jl=e.current;null!==Jl;){var a=Jl,l=a.child;
vendor: 7,024 bytes, line 2
2if(0!==(16&Jl.flags)){var s=a.deletions;if(null!==s){for(var c=0;c<s.length;c++){var u=s[c];for(Jl=u;null!==Jl;){var d=Jl;switch(d.tag){case 0:case 11:case 15:ns(8,d,a)}var p=d.child;if(null!==p)p.return=d,Jl=p;else for(;null!==Jl;){var f=(d=Jl).sibling,m=d.return;if(is(d),d===u){Jl=null;break}if(null!==f){f.return=m,Jl=f;break}Jl=m}}}var h=a.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Jl=a}}if(0!==(2064&a.subtreeFlags)&&null!==l)l.return=a,Jl=l;else e:for(;null!==Jl;){if(0!==(2048&(a=Jl).flags))switch(a.tag){case 0:case 11:case 15:ns(9,a,a.return)}var v=a.sibling;if(null!==v){v.return=a.return,Jl=v;break e}Jl=a.return}}var y=e.current;for(Jl=y;null!==Jl;){var x=(l=Jl).child;if(0!==(2064&l.subtreeFlags)&&null!==x)x.return=l,Jl=x;else e:for(l=y;null!==Jl;){if(0!==(2048&(s=Jl).flags))try{switch(s.tag){case 0:case 11:case 15:rs(9,s)}}catch(E){kc(s,s.return,E)}if(s===l){Jl=null;break e}var w=s.sibling;if(null!==w){w.return=s.return,Jl=w;break e}Jl=s.return}}if(Ps=o,Bo(),it&&"function"===typeof it.onPostCommitFiberRoot)try{it.onPostCommitFiberRoot(ot,e)}catch(E){}r=!0}return r}finally{yt=n,Ss.transition=t}}return!1}function _c(e,t,n){e=Fi(e,t=fl(0,t=cl(n,t),1),1),t=ec(),null!==e&&(bt(e,1,t),rc(e,t))}function kc(e,t,n){if(3===e.tag)_c(e,e,n);else for(;null!==t;){if(3===t.tag){_c(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof r.componentDidCatch&&(null===Ys||!Ys.has(r))){t=Fi(t,e=ml(t,e=cl(n,e),1),1),e=ec(),null!==t&&(bt(t,1,e),rc(t,e));break}}t=t.return}}function Tc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,As===e&&(Is&n)===n&&(4===js||3===js&&(130023424&Is)===Is&&500>Xe()-$s?pc(e,0):Ds|=n),rc(e,t)}function Cc(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ut,0===(130023424&(ut<<=1))&&(ut=4194304)));var n=ec();null!==(e=zi(e,t))&&(bt(e,t,n),rc(e,n))}function Sc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Cc(e,n)}function Pc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(i(314))}null!==r&&r.delete(t),Cc(e,n)}function Ac(e,t){return We(e,t)}function Rc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ic(e,t,n,r){return new Rc(e,t,n,r)}function Lc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Ic(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function jc(e,t,n,r,o,a){var l=2;if(r=e,"function"===typeof e)Lc(e)&&(l=1);else if("string"===typeof e)l=5;else e:switch(e){case _:return zc(n.children,o,a,t);case k:l=8,o|=8;break;case T:return(e=Ic(12,n,t,2|o)).elementType=T,e.lanes=a,e;case A:return(e=Ic(13,n,t,o)).elementType=A,e.lanes=a,e;case R:return(e=Ic(19,n,t,o)).elementType=R,e.lanes=a,e;case O:return Nc(n,o,a,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case C:l=10;break e;case S:l=9;break e;case P:l=11;break e;case I:l=14;break e;case L:l=16,r=null;break e}throw Error(i(130,null==e?e:typeof e,""))}return(t=Ic(l,n,t,o)).elementType=e,t.type=r,t.lanes=a,t}function zc(e,t,n,r){return(e=Ic(7,e,r,t)).lanes=n,e}function Nc(e,t,n,r){return(e=Ic(22,e,r,t)).elementType=O,e.lanes=n,e.stateNode={isHidden:!1},e}function Mc(e,t,n){return(e=Ic(6,e,null,t)).lanes=n,e}function Dc(e,t,n){return(t=Ic(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Uc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Fc(e,t,n,r,o,i,a,l,s){return e=new Uc(e,t,n,l,s),1===t?(t=1,!0===i&&(t|=8)):t=0,i=Ic(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Mi(i),e}function $c(e){if(!e)return Po;e:{if(Ve(e=e._reactInternals)!==e||1!==e.tag)throw Error(i(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Oo(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(i(171))}if(1===e.tag){var n=e.type;if(Oo(n))return No(e,n,t)}return t}function Vc(e,t,n,r,o,i,a,l,s){return(e=Fc(n,r,!0,e,0,i,0,l,s)).context=$c(null),n=e.current,(i=Ui(r=ec(),o=tc(n))).callback=void 0!==t&&null!==t?t:null,Fi(n,i,o),e.current.lanes=o,bt(e,o,r),rc(e,r),e}function Bc(e,t,n,r){var o=t.current,i=ec(),a=tc(o);return n=$c(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ui(i,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Fi(o,t,a))&&(nc(e,o,a,i),$i(e,o,a)),a}function Hc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Yc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}_s=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ro.current)yl=!0;else{if(0===(e.lanes&n)&&0===(128&t.flags))return yl=!1,function(e,t,n){switch(t.tag){case 3:Al(t),mi();break;case 5:Ji(t);break;case 1:Oo(t.type)&&Mo(t);break;case 4:Qi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;So(_i,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(So(ea,1&ea.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Ml(e,t,n):(So(ea,1&ea.current),null!==(e=Hl(e,t,n))?e.sibling:null);So(ea,1&ea.current);break;case 19:if(r=0!==(n&t.childLanes),0!==(128&e.flags)){if(r)return Vl(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),So(ea,ea.current),r)break;return null;case 22:case 23:return t.lanes=0,kl(e,t,n)}return Hl(e,t,n)}
vendor: 4,210 bytes, line 2
2(e,t,n);yl=0!==(131072&e.flags)}else yl=!1,ii&&0!==(1048576&t.flags)&&ei(t,Wo,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Bl(e,t),e=t.pendingProps;var o=Lo(t,Ao.current);Ri(t,n),o=ga(null,t,r,e,o,n);var a=ba();return t.flags|=1,"object"===typeof o&&null!==o&&"function"===typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Oo(r)?(a=!0,Mo(t)):a=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Mi(t),o.updater=ol,t.stateNode=o,o._reactInternals=t,sl(t,r,e,n),t=Pl(null,t,r,!0,a,n)):(t.tag=0,ii&&a&&ti(t),xl(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Bl(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"===typeof e)return Lc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===P)return 11;if(e===I)return 14}return 2}(r),e=nl(r,e),o){case 0:t=Cl(null,t,r,e,n);break e;case 1:t=Sl(null,t,r,e,n);break e;case 11:t=wl(null,t,r,e,n);break e;case 14:t=El(null,t,r,nl(r.type,e),n);break e}throw Error(i(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Cl(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 1:return r=t.type,o=t.pendingProps,Sl(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 3:e:{if(Al(t),null===e)throw Error(i(387));r=t.pendingProps,o=(a=t.memoizedState).element,Di(e,t),Bi(t,r,null,n);var l=t.memoizedState;if(r=l.element,a.isDehydrated){if(a={element:r,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=a,t.memoizedState=a,256&t.flags){t=Rl(e,t,r,n,o=cl(Error(i(423)),t));break e}if(r!==o){t=Rl(e,t,r,n,o=cl(Error(i(424)),t));break e}for(oi=co(t.stateNode.containerInfo.firstChild),ri=t,ii=!0,ai=null,n=Ei(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mi(),r===o){t=Hl(e,t,n);break e}xl(e,t,r,n)}t=t.child}return t;case 5:return Ji(t),null===e&&ui(t),r=t.type,o=t.pendingProps,a=null!==e?e.memoizedProps:null,l=o.children,no(r,o)?l=null:null!==a&&no(r,a)&&(t.flags|=32),Tl(e,t),xl(e,t,l,n),t.child;case 6:return null===e&&ui(t),null;case 13:return Ml(e,t,n);case 4:return Qi(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=wi(t,null,r,n):xl(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,wl(e,t,r,o=t.elementType===r?o:nl(r,o),n);case 7:return xl(e,t,t.pendingProps,n),t.child;case 8:case 12:return xl(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,a=t.memoizedProps,l=o.value,So(_i,r._currentValue),r._currentValue=l,null!==a)if(lr(a.value,l)){if(a.children===o.children&&!Ro.current){t=Hl(e,t,n);break e}}else for(null!==(a=t.child)&&(a.return=t);null!==a;){var s=a.dependencies;if(null!==s){l=a.child;for(var c=s.firstContext;null!==c;){if(c.context===r){if(1===a.tag){(c=Ui(-1,n&-n)).tag=2;var u=a.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}a.lanes|=n,null!==(c=a.alternate)&&(c.lanes|=n),Ai(a.return,n,t),s.lanes|=n;break}c=c.next}}else if(10===a.tag)l=a.type===t.type?null:a.child;else if(18===a.tag){if(null===(l=a.return))throw Error(i(341));l.lanes|=n,null!==(s=l.alternate)&&(s.lanes|=n),Ai(l,n,t),l=a.sibling}else l=a.child;if(null!==l)l.return=a;else for(l=a;null!==l;){if(l===t){l=null;break}if(null!==(a=l.sibling)){a.return=l.return,l=a;break}l=l.return}a=l}xl(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,Ri(t,n),r=r(o=Ii(o)),t.flags|=1,xl(e,t,r,n),t.child;case 14:return o=nl(r=t.type,t.pendingProps),El(e,t,r,o=nl(r.type,o),n);case 15:return _l(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:nl(r,o),Bl(e,t),t.tag=1,Oo(r)?(e=!0,Mo(t)):e=!1,Ri(t,n),al(t,r,o),sl(t,r,o,n),Pl(null,t,r,!0,e,n);case 19:return Vl(e,t,n);case 22:return kl(e,t,n)}throw Error(i(156,t.tag))};var Wc="function"===typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function qc(e){this._internalRoot=e}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}
vendor: 10,019 bytes, line 2
2function Jc(){}function Zc(e,t,n,r,o){var i=n._reactRootContainer;if(i){var a=i;if("function"===typeof o){var l=o;o=function(){var e=Hc(a);l.call(e)}}Bc(t,a,e,o)}else a=function(e,t,n,r,o){if(o){if("function"===typeof r){var i=r;r=function(){var e=Hc(a);i.call(e)}}var a=Vc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=a,e[ho]=a.current,Vr(8===e.nodeType?e.parentNode:e),uc(),a}for(;o=e.lastChild;)e.removeChild(o);if("function"===typeof r){var l=r;r=function(){var e=Hc(s);l.call(e)}}var s=Fc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=s,e[ho]=s.current,Vr(8===e.nodeType?e.parentNode:e),uc((function(){Bc(t,s,n,r)})),s}(n,t,e,o,r);return Hc(a)}qc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(i(409));Bc(e,t,null,null)},qc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Bc(null,e,null,null)})),t[ho]=null}},qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ot.length&&0!==t&&t<Ot[n].priority;n++);Ot.splice(n,0,e),0===n&&Mt(e)}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(vt(t,1|n),rc(t,Xe()),0===(6&Ps)&&(Vs=Xe()+500,Bo()))}break;case 13:uc((function(){var t=zi(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),Yc(e,1)}},Et=function(e){if(13===e.tag){var t=zi(e,134217728);if(null!==t)nc(t,e,134217728,ec());Yc(e,134217728)}},_t=function(e){if(13===e.tag){var t=tc(e),n=zi(e,t);if(null!==n)nc(n,e,t,ec());Yc(e,t)}},kt=function(){return yt},Tt=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},Ee=function(e,t,n){switch(t){case"input":if(J(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=Eo(r);if(!o)throw Error(i(90));W(r),J(r,o)}}}break;case"textarea":ie(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Pe=cc,Ae=uc;var eu={usingClientEntryPoint:!1,Events:[xo,wo,Eo,Ce,Se,cc]},tu={findFiberByHostInstance:yo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nu={bundleType:tu.bundleType,version:tu.version,rendererPackageName:tu.rendererPackageName,rendererConfig:tu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:x.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:tu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var ru=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ru.isDisabled&&ru.supportsFiber)try{ot=ru.inject(nu),it=ru}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=eu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Qc(t))throw Error(i(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:E,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Qc(e))throw Error(i(299));var n=!1,r="",o=Wc;return null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Fc(e,1,!1,null,0,n,0,r,o),e[ho]=t.current,Vr(8===e.nodeType?e.parentNode:e),new Kc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(i(188));throw e=Object.keys(e).join(","),Error(i(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(i(200));return Zc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Qc(e))throw Error(i(405));var r=null!=n&&n.hydratedSources||null,o=!1,a="",l=Wc;if(null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(a=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError)),t=Vc(t,null,e,1,null!=n?n:null,o,0,a,l),e[ho]=t.current,Vr(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new qc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(i(200));return Zc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(i(40));return!!e._reactRootContainer&&(uc((function(){Zc(null,null,e,!1,(function(){e._reactRootContainer=null,e[ho]=null}))})),!0)},t.unstable_batchedUpdates=cc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(i(200));if(null==e||void 0===e._reactInternals)throw Error(i(38));return Zc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},391:(e,t,n)=>{"use strict";var r=n(950);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},950:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(730)},153:(e,t,n)=>{"use strict";var r=n(43),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,l=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,i={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)a.call(t,r)&&!s.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===i[r]&&(i[r]=t[r]);return{$$typeof:o,type:e,key:c,ref:u,props:i,_owner:l.current}}t.Fragment=i,t.jsx=c,t.jsxs=c},202:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var x=y.prototype=new v;x.constructor=y,h(x,b.prototype),x.isPureReactComponent=!0;var w=Array.isArray,E=Object.prototype.hasOwnProperty,_={current:null},k={key:!0,ref:!0,__self:!0,__source:!0};function T(e,t,r){var o,i={},a=null,l=null;if(null!=t)for(o in void 0!==t.ref&&(l=t.ref),void 0!==t.key&&(a=""+t.key),t)E.call(t,o)&&!k.hasOwnProperty(o)&&(i[o]=t[o]);var s=arguments.length-2;if(1===s)i.children=r;else if(1<s){for(var c=Array(s),u=0;u<s;u++)c[u]=arguments[u+2];i.children=c}if(e&&e.defaultProps)for(o in s=e.defaultProps)void 0===i[o]&&(i[o]=s[o]);return{$$typeof:n,type:e,key:a,ref:l,props:i,_owner:_.current}}function C(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var S=/\/+/g;function P(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,o,i,a){var l=typeof e;"undefined"!==l&&"boolean"!==l||(e=null);var s=!1;if(null===e)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case n:case r:s=!0}}if(s)return a=a(s=e),e=""===i?"."+P(s,0):i,w(a)?(o="",null!=e&&(o=e.replace(S,"$&/")+"/"),A(a,t,o,"",(function(e){return e}))):null!=a&&(C(a)&&(a=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||s&&s.key===a.key?"":(""+a.key).replace(S,"$&/")+"/")+e)),t.push(a)),1;if(s=0,i=""===i?".":i+":",w(e))for(var c=0;c<e.length;c++){var u=i+P(l=e[c],c);s+=A(l,t,o,u,a)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),c=0;!(l=e.next()).done;)s+=A(l=l.value,t,o,u=i+P(l,c++),a);else if("object"===l)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function R(e,t,n){if(null==e)return e;var r=[],o=0;return A(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function I(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var L={current:null},O={transition:null},j={ReactCurrentDispatcher:L,ReactCurrentBatchConfig:O,ReactCurrentOwner:_};function z(){throw Error("act(...) is not supported in production builds of React.")}
vendor: 6,786 bytes, line 2
2t.Children={map:R,forEach:function(e,t,n){R(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return R(e,(function(){t++})),t},toArray:function(e){return R(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=o,t.Profiler=a,t.PureComponent=y,t.StrictMode=i,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=j,t.act=z,t.cloneElement=function(e,t,r){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=h({},e.props),i=e.key,a=e.ref,l=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,l=_.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(c in t)E.call(t,c)&&!k.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==s?s[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){s=Array(c);for(var u=0;u<c;u++)s[u]=arguments[u+2];o.children=s}return{$$typeof:n,type:e.type,key:i,ref:a,props:o,_owner:l}},t.createContext=function(e){return(e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:l,_context:e},e.Consumer=e},t.createElement=T,t.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:I}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=O.transition;O.transition={};try{e()}finally{O.transition=t}},t.unstable_act=z,t.useCallback=function(e,t){return L.current.useCallback(e,t)},t.useContext=function(e){return L.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return L.current.useDeferredValue(e)},t.useEffect=function(e,t){return L.current.useEffect(e,t)},t.useId=function(){return L.current.useId()},t.useImperativeHandle=function(e,t,n){return L.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return L.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return L.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return L.current.useMemo(e,t)},t.useReducer=function(e,t,n){return L.current.useReducer(e,t,n)},t.useRef=function(e){return L.current.useRef(e)},t.useState=function(e){return L.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return L.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return L.current.useTransition()},t.version="18.3.1"},43:(e,t,n)=>{"use strict";e.exports=n(202)},579:(e,t,n)=>{"use strict";e.exports=n(153)},234:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<i(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,a=o>>>1;r<a;){var l=2*(r+1)-1,s=e[l],c=l+1,u=e[c];if(0>i(s,n))c<o&&0>i(u,s)?(e[r]=u,e[c]=n,r=c):(e[r]=s,e[l]=n,r=l);else{if(!(c<o&&0>i(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var a=performance;t.unstable_now=function(){return a.now()}}else{var l=Date,s=l.now();t.unstable_now=function(){return l.now()-s}}var c=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"===typeof setTimeout?setTimeout:null,v="function"===typeof clearTimeout?clearTimeout:null,y="undefined"!==typeof setImmediate?setImmediate:null;function x(e){for(var t=r(u);null!==t;){if(null===t.callback)o(u);else{if(!(t.startTime<=e))break;o(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function w(e){if(g=!1,x(e),!h)if(null!==r(c))h=!0,O(E);else{var t=r(u);null!==t&&j(w,t.startTime-e)}}function E(e,n){h=!1,g&&(g=!1,v(C),C=-1),m=!0;var i=f;try{for(x(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!A());){var a=p.callback;if("function"===typeof a){p.callback=null,f=p.priorityLevel;var l=a(p.expirationTime<=n);n=t.unstable_now(),"function"===typeof l?p.callback=l:p===r(c)&&o(c),x(n)}else o(c);p=r(c)}if(null!==p)var s=!0;else{var d=r(u);null!==d&&j(w,d.startTime-n),s=!1}return s}finally{p=null,f=i,m=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var _,k=!1,T=null,C=-1,S=5,P=-1;function A(){return!(t.unstable_now()-P<S)}function R(){if(null!==T){var e=t.unstable_now();P=e;var n=!0;try{n=T(!0,e)}finally{n?_():(k=!1,T=null)}}else k=!1}if("function"===typeof y)_=function(){y(R)};else if("undefined"!==typeof MessageChannel){var I=new MessageChannel,L=I.port2;I.port1.onmessage=R,_=function(){L.postMessage(null)}}else _=function(){b(R,0)};function O(e){T=e,k||(k=!0,_())}function j(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,O(E))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):S=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,o,i){var a=t.unstable_now();switch("object"===typeof i&&null!==i?i="number"===typeof(i=i.delay)&&0<i?a+i:a:i=a,e){case 1:var l=-1;break;case 2:l=250;break;case 5:l=1073741823;break;case 4:l=1e4;break;default:l=5e3}return e={id:d++,callback:o,priorityLevel:e,startTime:i,expirationTime:l=i+l,sortIndex:-1},i>a?(e.sortIndex=i,n(u,e),null===r(c)&&e===r(u)&&(g?(v(C),C=-1):g=!0,j(w,i-a))):(e.sortIndex=l,n(c,e),h||m||(h=!0,O(E))),e},t.unstable_shouldYield=A,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},853:(e,t,n)=>{"use strict";e.exports=n(234)},324:e=>{e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;
2if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(t),s=0;s<i.length;s++){var c=i[s];if(!l(c))return!1;var u=e[c],d=t[c];if(!1===(o=n?n.call(r,u,d,c):void 0)||void 0===o&&u!==d)return!1}return!0}},222:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var n=null;if(!e||"string"!==typeof e)return n;var r=(0,o.default)(e),i="function"===typeof t;return r.forEach((function(e){if("declaration"===e.type){var r=e.property,o=e.value;i?t(r,o,e):o&&((n=n||{})[r]=o)}})),n};var o=r(n(403))}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r].call(i.exports,i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(r,o){if(1&o&&(r=this(r)),8&o)return r;if("object"===typeof r&&r){if(4&o&&r.__esModule)return r;if(16&o&&"function"===typeof r.then)return r}var i=Object.create(null);n.r(i);var a={};e=e||[null,t({}),t([]),t(t)];for(var l=2&o&&r;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach((e=>a[e]=()=>r[e]));return a.default=()=>r,n.d(i,a),i}})(),n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nc=void 0,(()=>{"use strict";var e={};n.r(e),n.d(e,{boolean:()=>Uo,booleanish:()=>Fo,commaOrSpaceSeparated:()=>Go,commaSeparated:()=>Ho,number:()=>Vo,overloadedBoolean:()=>$o,spaceSeparated:()=>Bo});var t={};n.r(t),n.d(t,{attentionMarkers:()=>kl,contentInitial:()=>vl,disable:()=>Tl,document:()=>bl,flow:()=>xl,flowInitial:()=>yl,insideSpan:()=>_l,string:()=>wl,text:()=>El});var r,o=n(43),i=n.t(o,2),a=n(391),l=n(950),s=n.t(l,2);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c.apply(this,arguments)}!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(r||(r={}));const u="popstate";function d(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function p(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function f(e,t){return{usr:e.state,key:e.key,idx:t}}function m(e,t,n,r){return void 0===n&&(n=null),c({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?g(t):t,{state:n,key:t&&t.key||r||Math.random().toString(36).substr(2,8)})}function h(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&"?"!==n&&(t+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(t+="#"===r.charAt(0)?r:"#"+r),t}function g(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function b(e,t,n,o){void 0===o&&(o={});let{window:i=document.defaultView,v5Compat:a=!1}=o,l=i.history,s=r.Pop,p=null,g=b();function b(){return(l.state||{idx:null}).idx}function v(){s=r.Pop;let e=b(),t=null==e?null:e-g;g=e,p&&p({action:s,location:x.location,delta:t})}function y(e){let t="null"!==i.location.origin?i.location.origin:i.location.href,n="string"===typeof e?e:h(e);return n=n.replace(/ $/,"%20"),d(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==g&&(g=0,l.replaceState(c({},l.state,{idx:g}),""));let x={get action(){return s},get location(){return e(i,l)},listen(e){if(p)throw new Error("A history only accepts one active listener");return i.addEventListener(u,v),p=e,()=>{i.removeEventListener(u,v),p=null}},createHref:e=>
2t(i,e),createURL:y,encodeLocation(e){let t=y(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){s=r.Push;let o=m(x.location,e,t);n&&n(o,e),g=b()+1;let c=f(o,g),u=x.createHref(o);try{l.pushState(c,"",u)}catch(d){if(d instanceof DOMException&&"DataCloneError"===d.name)throw d;i.location.assign(u)}a&&p&&p({action:s,location:x.location,delta:1})},replace:function(e,t){s=r.Replace;let o=m(x.location,e,t);n&&n(o,e),g=b();let i=f(o,g),c=x.createHref(o);l.replaceState(i,"",c),a&&p&&p({action:s,location:x.location,delta:0})},go:e=>l.go(e)};return x}var v;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(v||(v={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function y(e,t,n){return void 0===n&&(n="/"),x(e,t,n,!1)}function x(e,t,n,r){let o=j(("string"===typeof t?g(t):t).pathname||"/",n);if(null==o)return null;let i=w(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(i);let a=null;for(let l=0;null==a&&l<i.length;++l){let e=O(o);a=I(i[l],e,r)}return a}function w(e,t,n,r){void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===r&&(r="");let o=(e,o,i)=>{let a={relativePath:void 0===i?e.path||"":i,caseSensitive:!0===e.caseSensitive,childrenIndex:o,route:e};a.relativePath.startsWith("/")&&(d(a.relativePath.startsWith(r),'Absolute route path "'+a.relativePath+'" nested under path "'+r+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),a.relativePath=a.relativePath.slice(r.length));let l=U([r,a.relativePath]),s=n.concat(a);e.children&&e.children.length>0&&(d(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+l+'".'),w(e.children,t,s,l)),(null!=e.path||e.index)&&t.push({path:l,score:R(l,e.index),routesMeta:s})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let r of E(e.path))o(e,t,r);else o(e,t)})),t}function E(e){let t=e.split("/");if(0===t.length)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(0===r.length)return o?[i,""]:[i];let a=E(r.join("/")),l=[];return l.push(...a.map((e=>""===e?i:[i,e].join("/")))),o&&l.push(...a),l.map((t=>e.startsWith("/")&&""===t?"/":t))}const _=/^:[\w-]+$/,k=3,T=2,C=1,S=10,P=-2,A=e=>"*"===e;function R(e,t){let n=e.split("/"),r=n.length;return n.some(A)&&(r+=P),t&&(r+=T),n.filter((e=>!A(e))).reduce(((e,t)=>e+(_.test(t)?k:""===t?C:S)),r)}function I(e,t,n){void 0===n&&(n=!1);let{routesMeta:r}=e,o={},i="/",a=[];for(let l=0;l<r.length;++l){let e=r[l],s=l===r.length-1,c="/"===i?t:t.slice(i.length)||"/",u=L({path:e.relativePath,caseSensitive:e.caseSensitive,end:s},c),d=e.route;if(!u&&s&&n&&!r[r.length-1].route.index&&(u=L({path:e.relativePath,caseSensitive:e.caseSensitive,end:!1},c)),!u)return null;
2Object.assign(o,u.params),a.push({params:o,pathname:U([i,u.pathname]),pathnameBase:F(U([i,u.pathnameBase])),route:d}),"/"!==u.pathnameBase&&(i=U([i,u.pathnameBase]))}return a}function L(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);p("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,n)=>(r.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(r.push({paramName:"*"}),o+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":""!==e&&"/"!==e&&(o+="(?:(?=\\/|$))");let i=new RegExp(o,t?void 0:"i");return[i,r]}(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),l=o.slice(1),s=r.reduce(((e,t,n)=>{let{paramName:r,isOptional:o}=t;if("*"===r){let e=l[n]||"";a=i.slice(0,i.length-e.length).replace(/(.)\/+$/,"$1")}const s=l[n];return e[r]=o&&!s?void 0:(s||"").replace(/%2F/g,"/"),e}),{});return{params:s,pathname:i,pathnameBase:a,pattern:e}}function O(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return p(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function j(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&"/"!==r?null:e.slice(n)||"/"}function z(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(r)+"].  Please separate it out to the `to."+n+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function N(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function M(e,t){let n=N(e);return t?n.map(((e,t)=>t===n.length-1?e.pathname:e.pathnameBase)):n.map((e=>e.pathnameBase))}function D(e,t,n,r){let o;void 0===r&&(r=!1),"string"===typeof e?o=g(e):(o=c({},e),d(!o.pathname||!o.pathname.includes("?"),z("?","pathname","search",o)),d(!o.pathname||!o.pathname.includes("#"),z("#","pathname","hash",o)),d(!o.search||!o.search.includes("#"),z("#","search","hash",o)));let i,a=""===e||""===o.pathname,l=a?"/":o.pathname;if(null==l)i=n;else{let e=t.length-1;if(!r&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;o.pathname=t.join("/")}i=e>=0?t[e]:"/"}let s=function(e,t){void 0===t&&(t="/");let{pathname:n,search:r="",hash:o=""}="string"===typeof e?g(e):e,i=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:i,search:$(r),hash:V(o)}}(o,i),u=l&&"/"!==l&&l.endsWith("/"),p=(a||"."===l)&&n.endsWith("/");return s.pathname.endsWith("/")||!u&&!p||(s.pathname+="/"),s}const U=e=>e.join("/").replace(/\/\/+/g,"/"),F=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),$=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",V=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;function B(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const H=["post","put","patch","delete"],G=(new Set(H),["get",...H]);new Set(G),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred");function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}const W=o.createContext(null);const K=o.createContext(null);const q=o.createContext(null);const Q=o.createContext(null);const X=o.createContext({outlet:null,matches:[],isDataRoute:!1});const J=o.createContext(null);function Z(){return null!=o.useContext(Q)}function ee(){return Z()||d(!1),o.useContext(Q).location}function te(e){o.useContext(q).static||o.useLayoutEffect(e)}function ne(){let{isDataRoute:e}=o.useContext(X);return e?function(){let{router:e}=pe(ue.UseNavigateStable),t=me(de.UseNavigateStable),n=o.useRef(!1);return te((()=>{n.current=!0})),o.useCallback((function(r,o){void 0===o&&(o={}),n.current&&("number"===typeof r?e.navigate(r):e.navigate(r,Y({fromRouteId:t},o)))}),[e,t])}():function(){Z()||d(!1);
2let e=o.useContext(W),{basename:t,future:n,navigator:r}=o.useContext(q),{matches:i}=o.useContext(X),{pathname:a}=ee(),l=JSON.stringify(M(i,n.v7_relativeSplatPath)),s=o.useRef(!1);te((()=>{s.current=!0}));let c=o.useCallback((function(n,o){if(void 0===o&&(o={}),!s.current)return;if("number"===typeof n)return void r.go(n);let i=D(n,JSON.parse(l),a,"path"===o.relative);null==e&&"/"!==t&&(i.pathname="/"===i.pathname?t:U([t,i.pathname])),(o.replace?r.replace:r.push)(i,o.state,o)}),[t,r,l,a,e]);return c}()}function re(e,t){let{relative:n}=void 0===t?{}:t,{future:r}=o.useContext(q),{matches:i}=o.useContext(X),{pathname:a}=ee(),l=JSON.stringify(M(i,r.v7_relativeSplatPath));return o.useMemo((()=>D(e,JSON.parse(l),a,"path"===n)),[e,l,a,n])}function oe(e,t,n,i){Z()||d(!1);let{navigator:a}=o.useContext(q),{matches:l}=o.useContext(X),s=l[l.length-1],c=s?s.params:{},u=(s&&s.pathname,s?s.pathnameBase:"/");s&&s.route;let p,f=ee();if(t){var m;let e="string"===typeof t?g(t):t;"/"===u||(null==(m=e.pathname)?void 0:m.startsWith(u))||d(!1),p=e}else p=f;let h=p.pathname||"/",b=h;if("/"!==u){let e=u.replace(/^\//,"").split("/");b="/"+h.replace(/^\//,"").split("/").slice(e.length).join("/")}let v=y(e,{pathname:b});let x=ce(v&&v.map((e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:U([u,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:U([u,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),l,n,i);return t&&x?o.createElement(Q.Provider,{value:{location:Y({pathname:"/",search:"",hash:"",state:null,key:"default"},p),navigationType:r.Pop}},x):x}function ie(){let e=function(){var e;let t=o.useContext(J),n=fe(de.UseRouteError),r=me(de.UseRouteError);if(void 0!==t)return t;return null==(e=n.errors)?void 0:e[r]}(),t=B(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:r};return o.createElement(o.Fragment,null,o.createElement("h2",null,"Unexpected Application Error!"),o.createElement("h3",{style:{fontStyle:"italic"}},t),n?o.createElement("pre",{style:i},n):null,null)}const ae=o.createElement(ie,null);class le extends o.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?o.createElement(X.Provider,{value:this.props.routeContext},o.createElement(J.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function se(e){let{routeContext:t,match:n,children:r}=e,i=o.useContext(W);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),o.createElement(X.Provider,{value:t},r)}function ce(e,t,n,r){var i;if(void 0===t&&(t=[]),void 0===n&&(n=null),void 0===r&&(r=null),null==e){var a;if(!n)return null;if(n.errors)e=n.matches;else{if(!(null!=(a=r)&&a.v7_partialHydration&&0===t.length&&!n.initialized&&n.matches.length>0))return null;e=n.matches}}let l=e,s=null==(i=n)?void 0:i.errors;if(null!=s){let e=l.findIndex((e=>e.route.id&&void 0!==(null==s?void 0:s[e.route.id])));e>=0||d(!1),l=l.slice(0,Math.min(l.length,e+1))}let c=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let o=0;o<l.length;o++){let e=l[o];if((e.route.HydrateFallback||e.route.hydrateFallbackElement)&&(u=o),e.route.id){let{loaderData:t,errors:r}=n,o=e.route.loader&&void 0===t[e.route.id]&&(!r||void 0===r[e.route.id]);if(e.route.lazy||o){c=!0,l=u>=0?l.slice(0,u+1):[l[0]];break}}}return l.reduceRight(((e,r,i)=>{let a,d=!1,p=null,f=null;var m;n&&(a=s&&r.route.id?s[r.route.id]:void 0,p=r.route.errorElement||ae,c&&(u<0&&0===i?(m="route-fallback",!1||he[m]||(he[m]=!0),d=!0,f=null):u===i&&(d=!0,f=r.route.hydrateFallbackElement||null)));let h=t.concat(l.slice(0,i+1)),g=()=>{let t;return t=a?p:d?f:r.route.Component?o.createElement(r.route.Component,null):r.route.element?r.route.element:e,o.createElement(se,{match:r,routeContext:{outlet:e,matches:h,isDataRoute:null!=n},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||0===i)?o.createElement(le,{location:n.location,revalidation:n.revalidation,component:p,error:a,children:g(),routeC
2ontext:{outlet:null,matches:h,isDataRoute:!0}}):g()}),null)}var ue=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ue||{}),de=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(de||{});function pe(e){let t=o.useContext(W);return t||d(!1),t}function fe(e){let t=o.useContext(K);return t||d(!1),t}function me(e){let t=function(){let e=o.useContext(X);return e||d(!1),e}(),n=t.matches[t.matches.length-1];return n.route.id||d(!1),n.route.id}const he={};const ge={};const be=(e,t,n)=>{var r;ge[r="\u26a0\ufe0f React Router Future Flag Warning: "+t+". You can use the `"+e+"` future flag to opt-in early. For more information, see "+n+"."]||(ge[r]=!0,console.warn(r))};function ve(e,t){null!=e&&e.v7_startTransition||be("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),null!=e&&e.v7_relativeSplatPath||t&&t.v7_relativeSplatPath||be("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(t.v7_fetcherPersist||be("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),t.v7_normalizeFormMethod||be("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),t.v7_partialHydration||be("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),t.v7_skipActionErrorRevalidation||be("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}i.startTransition;function ye(e){let{to:t,replace:n,state:r,relative:i}=e;Z()||d(!1);let{future:a,static:l}=o.useContext(q),{matches:s}=o.useContext(X),{pathname:c}=ee(),u=ne(),p=D(t,M(s,a.v7_relativeSplatPath),c,"path"===i),f=JSON.stringify(p);return o.useEffect((()=>u(JSON.parse(f),{replace:n,state:r,relative:i})),[u,f,i,n,r]),null}function xe(e){d(!1)}function we(e){let{basename:t="/",children:n=null,location:i,navigationType:a=r.Pop,navigator:l,static:s=!1,future:c}=e;Z()&&d(!1);let u=t.replace(/^\/*/,"/"),p=o.useMemo((()=>({basename:u,navigator:l,static:s,future:Y({v7_relativeSplatPath:!1},c)})),[u,c,l,s]);"string"===typeof i&&(i=g(i));let{pathname:f="/",search:m="",hash:h="",state:b=null,key:v="default"}=i,y=o.useMemo((()=>{let e=j(f,u);return null==e?null:{location:{pathname:e,search:m,hash:h,state:b,key:v},navigationType:a}}),[u,f,m,h,b,v,a]);return null==y?null:o.createElement(q.Provider,{value:p},o.createElement(Q.Provider,{children:n,value:y}))}function Ee(e){let{children:t,location:n}=e;return oe(_e(t),n)}new Promise((()=>{}));o.Component;function _e(e,t){void 0===t&&(t=[]);let n=[];return o.Children.forEach(e,((e,r)=>{if(!o.isValidElement(e))return;let i=[...t,r];if(e.type===o.Fragment)return void n.push.apply(n,_e(e.props.children,i));e.type!==xe&&d(!1),e.props.index&&e.props.children&&d(!1);let a={id:e.props.id||i.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=_e(e.props.children,i)),n.push(a)})),n}function ke(){return ke=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ke.apply(this,arguments)}function Te(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);const Ce=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="6"}catch(Fh){}new Map;const Se=i.startTransition;s.flushSync,i.useId;function Pe(e){let{basename:t,children:n,future:r,window:i}=e,a=o.useRef();var l;null==a.current&&(a.current=(void 0===(l={window:i,v5Compat:!0})&&(l={}),b((function(e,t){let{pathname:n,search:r,hash:o}=e.location;return m("",{pathname:n,search:r,hash:o},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"===typeof t?t:h(t)}),null,l)));let s=a.current,[c,u]=o.useState({action:s.action,location:s.location}),{v7_startTransition:d}=r||{},p=o.useCallback((e=>{d&&Se?Se((()=>u(e))):u(e)}),[u,d]);return o.useLayoutEffect((()=>s.listen(p)),[s,p]),o.useEffect((()=>ve(r)),[r]),o.createElement(we,{basename:t,children:n,location:c.location,navigationType:c.action,navigator:s,future:r})}const Ae="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,Re=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ie=o.forwardRef((function(e,t){let n,{onClick:r,relative:i,reloadDocument:a,replace:l,state:s,target:c,to:u,preventScrollReset:p,viewTransition:f}=e,m=Te(e,Ce),{basename:g}=o.useContext(q),b=!1;
2if("string"===typeof u&&Re.test(u)&&(n=u,Ae))try{let e=new URL(window.location.href),t=u.startsWith("//")?new URL(e.protocol+u):new URL(u),n=j(t.pathname,g);t.origin===e.origin&&null!=n?u=n+t.search+t.hash:b=!0}catch(Fh){}let v=function(e,t){let{relative:n}=void 0===t?{}:t;Z()||d(!1);let{basename:r,navigator:i}=o.useContext(q),{hash:a,pathname:l,search:s}=re(e,{relative:n}),c=l;return"/"!==r&&(c="/"===l?r:U([r,l])),i.createHref({pathname:c,search:s,hash:a})}(u,{relative:i}),y=function(e,t){let{target:n,replace:r,state:i,preventScrollReset:a,relative:l,viewTransition:s}=void 0===t?{}:t,c=ne(),u=ee(),d=re(e,{relative:l});return o.useCallback((t=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(t,n)){t.preventDefault();let n=void 0!==r?r:h(u)===h(d);c(e,{replace:n,state:i,preventScrollReset:a,relative:l,viewTransition:s})}}),[u,c,d,r,i,n,e,a,l,s])}(u,{replace:l,state:s,target:c,preventScrollReset:p,relative:i,viewTransition:f});return o.createElement("a",ke({},m,{href:n||v,onClick:b||a?r:function(e){r&&r(e),e.defaultPrevented||y(e)},ref:t,target:c}))}));var Le,Oe;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Le||(Le={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(Oe||(Oe={}));var je=function(){return je=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},je.apply(this,arguments)};Object.create;function ze(e,t,n){if(n||2===arguments.length)for(var r,o=0,i=t.length;o<i;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}Object.create;"function"===typeof SuppressedError&&SuppressedError;var Ne=n(324),Me=n.n(Ne),De="-ms-",Ue="-moz-",Fe="-webkit-",$e="comm",Ve="rule",Be="decl",He="@keyframes",Ge=Math.abs,Ye=String.fromCharCode,We=Object.assign;function Ke(e){return e.trim()}function qe(e,t){return(e=t.exec(e))?e[0]:e}function Qe(e,t,n){return e.replace(t,n)}function Xe(e,t,n){return e.indexOf(t,n)}function Je(e,t){return 0|e.charCodeAt(t)}function Ze(e,t,n){return e.slice(t,n)}function et(e){return e.length}function tt(e){return e.length}function nt(e,t){return t.push(e),e}function rt(e,t){return e.filter((function(e){return!qe(e,t)}))}var ot=1,it=1,at=0,lt=0,st=0,ct="";function ut(e,t,n,r,o,i,a,l){return{value:e,root:t,parent:n,type:r,props:o,children:i,line:ot,column:it,length:a,return:"",siblings:l}}function dt(e,t){return We(ut("",null,null,"",null,null,0,e.siblings),e,{length:-e.length},t)}function pt(e){for(;e.root;)e=dt(e.root,{children:[e]});nt(e,e.siblings)}function ft(){return st=lt>0?Je(ct,--lt):0,it--,10===st&&(it=1,ot--),st}function mt(){return st=lt<at?Je(ct,lt++):0,it++,10===st&&(it=1,ot++),st}function ht(){return Je(ct,lt)}function gt(){return lt}function bt(e,t){return Ze(ct,e,t)}function vt(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function yt(e){return ot=it=1,at=et(ct=e),lt=0,[]}function xt(e){return ct="",e}function wt(e){return Ke(bt(lt-1,kt(91===e?e+2:40===e?e+1:e)))}function Et(e){for(;(st=ht())&&st<33;)mt();return vt(e)>2||vt(st)>3?"":" "}function _t(e,t){for(;--t&&mt()&&!(st<48||st>102||st>57&&st<65||st>70&&st<97););return bt(e,gt()+(t<6&&32==ht()&&32==mt()))}function kt(e){for(;mt();)switch(st){case e:return lt;case 34:case 39:34!==e&&39!==e&&kt(st);break;case 40:41===e&&kt(e);break;case 92:mt()}return lt}function Tt(e,t){for(;mt()&&e+st!==57&&(e+st!==84||47!==ht()););return"/*"+bt(t,lt-1)+"*"+Ye(47===e?e:mt())}function Ct(e){for(;!vt(ht());)mt();return bt(e,lt)}function St(e,t){for(var n="",r=0;r<e.length;r++)n+=t(e[r],r,e,t)||"";return n}function Pt(e,t,n,r){switch(e.type){case"@layer":if(e.children.length)break;case"@import":case Be:return e.return=e.return||e.value;case $e:return"";case He:return e.return=e.value+"{"+St(e.children,r)+"}";case Ve:if(!et(e.value=e.props.join(",")))return""}return et(n=St(e.children,r))?e.return=e.value+"{"+n+"}":""}function At(e,t,n){switch(function(e,t){return 45^Je(e,0)?(((t<<2^Je(e,0))<<2^Je(e,1))<<2^Je(e,2))<<2^Je(e,3):0}(e,t)){case 5103:return Fe+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return Fe+e+e;case 4789:return Ue+e+e;
vendor: 5,399 bytes, line 2
2case 5349:case 4246:case 4810:case 6968:case 2756:return Fe+e+Ue+e+De+e+e;case 5936:switch(Je(e,t+11)){case 114:return Fe+e+De+Qe(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return Fe+e+De+Qe(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return Fe+e+De+Qe(e,/[svh]\w+-[tblr]{2}/,"lr")+e}case 6828:case 4268:case 2903:return Fe+e+De+e+e;case 6165:return Fe+e+De+"flex-"+e+e;case 5187:return Fe+e+Qe(e,/(\w+).+(:[^]+)/,Fe+"box-$1$2"+De+"flex-$1$2")+e;case 5443:return Fe+e+De+"flex-item-"+Qe(e,/flex-|-self/g,"")+(qe(e,/flex-|baseline/)?"":De+"grid-row-"+Qe(e,/flex-|-self/g,""))+e;case 4675:return Fe+e+De+"flex-line-pack"+Qe(e,/align-content|flex-|-self/g,"")+e;case 5548:return Fe+e+De+Qe(e,"shrink","negative")+e;case 5292:return Fe+e+De+Qe(e,"basis","preferred-size")+e;case 6060:return Fe+"box-"+Qe(e,"-grow","")+Fe+e+De+Qe(e,"grow","positive")+e;case 4554:return Fe+Qe(e,/([^-])(transform)/g,"$1"+Fe+"$2")+e;case 6187:return Qe(Qe(Qe(e,/(zoom-|grab)/,Fe+"$1"),/(image-set)/,Fe+"$1"),e,"")+e;case 5495:case 3959:return Qe(e,/(image-set\([^]*)/,Fe+"$1$`$1");case 4968:return Qe(Qe(e,/(.+:)(flex-)?(.*)/,Fe+"box-pack:$3"+De+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+Fe+e+e;case 4200:if(!qe(e,/flex-|baseline/))return De+"grid-column-align"+Ze(e,t)+e;break;case 2592:case 3360:return De+Qe(e,"template-","")+e;case 4384:case 3616:return n&&n.some((function(e,n){return t=n,qe(e.props,/grid-\w+-end/)}))?~Xe(e+(n=n[t].value),"span",0)?e:De+Qe(e,"-start","")+e+De+"grid-row-span:"+(~Xe(n,"span",0)?qe(n,/\d+/):+qe(n,/\d+/)-+qe(e,/\d+/))+";":De+Qe(e,"-start","")+e;case 4896:case 4128:return n&&n.some((function(e){return qe(e.props,/grid-\w+-start/)}))?e:De+Qe(Qe(e,"-end","-span"),"span ","")+e;case 4095:case 3583:case 4068:case 2532:return Qe(e,/(.+)-inline(.+)/,Fe+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(et(e)-1-t>6)switch(Je(e,t+1)){case 109:if(45!==Je(e,t+4))break;case 102:return Qe(e,/(.+:)(.+)-([^]+)/,"$1"+Fe+"$2-$3$1"+Ue+(108==Je(e,t+3)?"$3":"$2-$3"))+e;case 115:return~Xe(e,"stretch",0)?At(Qe(e,"stretch","fill-available"),t,n)+e:e}break;case 5152:case 5920:return Qe(e,/(.+?):(\d+)(\s*\/\s*(span)?\s*(\d+))?(.*)/,(function(t,n,r,o,i,a,l){return De+n+":"+r+l+(o?De+n+"-span:"+(i?a:+a-+r)+l:"")+e}));case 4949:if(121===Je(e,t+6))return Qe(e,":",":"+Fe)+e;break;case 6444:switch(Je(e,45===Je(e,14)?18:11)){case 120:return Qe(e,/(.+:)([^;\s!]+)(;|(\s+)?!.+)?/,"$1"+Fe+(45===Je(e,14)?"inline-":"")+"box$3$1"+Fe+"$2$3$1"+De+"$2box$3")+e;case 100:return Qe(e,":",":"+De)+e}break;case 5719:case 2647:case 2135:case 3927:case 2391:return Qe(e,"scroll-","scroll-snap-")+e}return e}function Rt(e,t,n,r){if(e.length>-1&&!e.return)switch(e.type){case Be:return void(e.return=At(e.value,e.length,n));case He:return St([dt(e,{value:Qe(e.value,"@","@"+Fe)})],r);case Ve:if(e.length)return function(e,t){return e.map(t).join("")}(n=e.props,(function(t){switch(qe(t,r=/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":pt(dt(e,{props:[Qe(t,/:(read-\w+)/,":-moz-$1")]})),pt(dt(e,{props:[t]})),We(e,{props:rt(n,r)});break;case"::placeholder":pt(dt(e,{props:[Qe(t,/:(plac\w+)/,":"+Fe+"input-$1")]})),pt(dt(e,{props:[Qe(t,/:(plac\w+)/,":-moz-$1")]})),pt(dt(e,{props:[Qe(t,/:(plac\w+)/,De+"input-$1")]})),pt(dt(e,{props:[t]})),We(e,{props:rt(n,r)})}return""}))}}function It(e){return xt(Lt("",null,null,null,[""],e=yt(e),0,[0],e))}function Lt(e,t,n,r,o,i,a,l,s){for(var c=0,u=0,d=a,p=0,f=0,m=0,h=1,g=1,b=1,v=0,y="",x=o,w=i,E=r,_=y;g;)switch(m=v,v=mt()){case 40:if(108!=m&&58==Je(_,d-1)){-1!=Xe(_+=Qe(wt(v),"&","&\f"),"&\f",Ge(c?l[c-1]:0))&&(b=-1);break}case 34:case 39:case 91:_+=wt(v);break;case 9:case 10:case 13:case 32:_+=Et(m);break;case 92:_+=_t(gt()-1,7);continue;case 47:switch(ht()){case 42:case 47:nt(jt(Tt(mt(),gt()),t,n,s),s);break;default:_+="/"}break;case 123*h:l[c++]=et(_)*b;case 125*h:case 59:case 0:switch(v){case 0:case 125:g=0;case 59+u:-1==b&&(_=Qe(_,/\f/g,"")),f>0&&et(_)-d&&nt(f>32?zt(_+";",r,n,d-1,s):zt(Qe(_," ","")+";",r,n,d-2,s),s);break;case 59:_+=";";default:if(nt(E=Ot(_,t,n,c,u,o,l,y,x=[],w=[],d,i),i),123===v)if(0===u)Lt(_,t,E,E,x,i,d,l,w);else switch(99===p&&110===Je(_,3)?100:p){case 100:case 108:case 109:case 115:Lt(e,E,E,r&&nt(Ot(e,E,E,0,0,o,l,y,o,x=[],d,w),w),o,w,d,l,r?x:w);break;default:Lt(_,E,E,E,[""],w,0,l,w)}}c=u=f=0,h=b=1,y=_="",d=a;break;case 58:d=1+et(_),f=m;default:if(h<1)if(123==v)--h;else if(125==v&&0==h++&&125==ft())continue;switch(_+=Ye(v),v*h){case 38:b=u>0?1:(_+="\f",-1);break;case 44:l[c++]=(et(_)-1)*b,b=1;break;case 64:45===ht()&&(_+=wt(mt())),p=ht(),u=d=et(y=_+=Ct(gt())),v++;break;case 45:45===m&&2==et(_)&&(h=0)}}return i}function Ot(e,t,n,r,o,i,a,l,s,c,u,d){for(var p=o-1,f=0===o?i:[""],m=tt(f),h=0,g=0,b=0;h<r;++h)for(var v=0,y=Ze(e,p+1,p=Ge(g=a[h])),x=e;v<m;++v)(x=Ke(g>0?f[v]+" "+y:Qe(y,/&\f/g,f[v])))&&(s[b++]=x);return ut(e,t,n,0===o?Ve:l,s,c,u,d)}function jt(e,t,n,r){return ut(e,t,n,$e,Ye(st),Ze(e,2,-2),0,r)}function zt(e,t,n,r,o){return ut(e,t,n,Be,Ze(e,0,r),Ze(e,r+1,-1),r,o)}var Nt={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGr
2idRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Mt="undefined"!=typeof process&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}&&({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_SC_ATTR||{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.SC_ATTR)||"data-styled",Dt="active",Ut="data-styled-version",Ft="6.1.13",$t="/*!sc*/\n",Vt="undefined"!=typeof window&&"HTMLElement"in window,Bt=Boolean("boolean"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_SC_DISABLE_SPEEDY&&""!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_SC_DISABLE_SPEEDY?"false"!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_SC_DISABLE_SPEEDY&&{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_SC_DISABLE_SPEEDY:"undefined"!=typeof process&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}&&void 0!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.SC_DISABLE_SPEEDY&&""!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.SC_DISABLE_SPEEDY&&("false"!=={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.SC_DISABLE_SPEEDY&&{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
2,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.SC_DISABLE_SPEEDY)),Ht={},Gt=(new Set,Object.freeze([])),Yt=Object.freeze({});function Wt(e,t,n){return void 0===n&&(n=Yt),e.theme!==n.theme&&e.theme||t||n.theme}var Kt=new Set(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","use","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"]),qt=/[!"#$%&'()*+,./:;<=>?@[\\\]^`{|}~-]+/g,Qt=/(^-|-$)/g;function Xt(e){return e.replace(qt,"-").replace(Qt,"")}var Jt=/(a)(d)/gi,Zt=function(e){return String.fromCharCode(e+(e>25?39:97))};function en(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=Zt(t%52)+n;return(Zt(t%52)+n).replace(Jt,"$1-$2")}var tn,nn=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},rn=function(e){return nn(5381,e)};function on(e){return en(rn(e)>>>0)}function an(e){return e.displayName||e.name||"Component"}function ln(e){return"string"==typeof e&&!0}var sn="function"==typeof Symbol&&Symbol.for,cn=sn?Symbol.for("react.memo"):60115,un=sn?Symbol.for("react.forward_ref"):60112,dn={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},pn={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},fn={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},mn=((tn={})[un]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},tn[cn]=fn,tn);function hn(e){return("type"in(t=e)&&t.type.$$typeof)===cn?fn:"$$typeof"in e?mn[e.$$typeof]:dn;var t}var gn=Object.defineProperty,bn=Object.getOwnPropertyNames,vn=Object.getOwnPropertySymbols,yn=Object.getOwnPropertyDescriptor,xn=Object.getPrototypeOf,wn=Object.prototype;function En(e,t,n){if("string"!=typeof t){if(wn){var r=xn(t);r&&r!==wn&&En(e,r,n)}var o=bn(t);vn&&(o=o.concat(vn(t)));for(var i=hn(e),a=hn(t),l=0;l<o.length;++l){var s=o[l];if(!(s in pn||n&&n[s]||a&&s in a||i&&s in i)){var c=yn(t,s);try{gn(e,s,c)}catch(e){}}}}return e}function _n(e){return"function"==typeof e}function kn(e){return"object"==typeof e&&"styledComponentId"in e}function Tn(e,t){return e&&t?"".concat(e," ").concat(t):e||t||""}function Cn(e,t){if(0===e.length)return"";for(var n=e[0],r=1;r<e.length;r++)n+=t?t+e[r]:e[r];return n}function Sn(e){return null!==e&&"object"==typeof e&&e.constructor.name===Object.name&&!("props"in e&&e.$$typeof)}function Pn(e,t,n){if(void 0===n&&(n=!1),!n&&!Sn(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var r=0;r<t.length;r++)e[r]=Pn(e[r],t[r]);else if(Sn(t))for(var r in t)e[r]=Pn(e[r],t[r]);return e}function An(e,t){Object.defineProperty(e,"toString",{value:t})}function Rn(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];return new Error("An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#".concat(e," for more information.").concat(t.length>0?" Args: ".concat(t.join(", ")):""))}var In=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)if((o<<=1)<0)throw Rn(16,"".concat(e));this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var i=r;i<o;i++)this.groupSizes[i]=0}for(var a=this.indexOfGroup(e+1),l=(i=0,t.length);i<l;i++)this.tag.insertRule(a,t[i])&&(this.groupSizes[e]++,a++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),r=n+t;this.groupSizes[e]=0;for(var o=n;o<r;o++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t="";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,i=r;i<o;i++)t+="".concat(this.tag.getRule(i)).concat($t);return t},e}(),Ln=new Map,On=new Map,jn=1,zn=function(e){if(Ln.has(e))return Ln.get(e);for(;On.has(jn);)jn++;var t=jn++;return Ln.set(e,t),On.set(t,e),t},Nn=function(e,t){jn=t+1,Ln.set(e,t),On.set(t,e)},Mn="style[".concat(Mt,"][").concat(Ut,'="').concat(Ft,'"]'),Dn=new RegExp("^".concat(Mt,'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)')),Un=function(e,t,n){for(var r,o=n.split(","),i=0,a=o.length;i<a;i++)(r=o[i])&&e.registerName(t,r)},Fn=function(e,t){for(var n,r=(null!==(n=t.textContent)&&void 0!==n?n:"").split($t),o=[],i=0,a=r.length;i<a;i++){var l=r[i].trim();if(l){var s=l.match(Dn);if(s){var c=0|parseInt(s[1],10),u=s[2];0!==c&&(Nn(u,c),Un(e,u,s[3]),e.getTag().insertRules(c,o)),o.length=0}else o.push(l)}}},$n=function(e){for(var t=document.querySelectorAll(Mn),n=0,r=t.length;n<r;n++){var o=t[n];o&&o.getAttribute(Mt)!==Dt&&(Fn(e,o),o.parentNode&&o.parentNode.removeChild(o))}};function Vn(){return n.nc}var Bn=function(e){var t=document.head,n=e||t,r=document.createElement("style"),o=function(e){var t=Array.from(e.querySelectorAll("style[".concat(Mt,"]")));return t[t.length-1]}(n),i=void 0!==o?o.nextSibling:null;r.setAttribute(Mt,Dt),r.setAttribute(Ut,Ft);var a=Vn();return a&&r.setAttribute("nonce",a),n.insertBefore(r,i),r},Hn=function(){function e(e){this.element=Bn(e),this.element.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n<r;n++){var o=t[n];if(o.ownerNode===e)return o}throw Rn(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:""},e}(),Gn=function(){function e(e){this.element=Bn(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:""},e}(),Yn=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:""},e}(),Wn=Vt,Kn={isServer:!Vt,useCSSOMInjection:!Bt},qn=function(){function e(e,t,n){void 0===e&&(e=Yt),void 0===t&&(t={});var r=this;this.options=je(je({},Kn),e),this.gs=t,this.names=new Map(n),this.server=!!e.isServer,!this.server&&Vt&&Wn&&(Wn=!1,$n(this)),An(this,(function(){return function(e){for(var t=e.getTag(),n=t.length,r="",o=function(n){var o=function(e){return On.get(e)}(n);if(void 0===o)return"continue";var i=e.names.get(o),a=t.getGroup(n);if(void 0===i||!i.size||0===a.length)return"continue";var l="".concat(Mt,".g").concat(n,'[id="').concat(o,'"]'),s="";
2void 0!==i&&i.forEach((function(e){e.length>0&&(s+="".concat(e,","))})),r+="".concat(a).concat(l,'{content:"').concat(s,'"}').concat($t)},i=0;i<n;i++)o(i);return r}(r)}))}return e.registerId=function(e){return zn(e)},e.prototype.rehydrate=function(){!this.server&&Vt&&$n(this)},e.prototype.reconstructWithOptions=function(t,n){return void 0===n&&(n=!0),new e(je(je({},this.options),t),this.gs,n&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new Yn(n):t?new Hn(n):new Gn(n)}(this.options),new In(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(zn(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(zn(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(zn(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),Qn=/&/g,Xn=/^\s*\/\/.*$/gm;function Jn(e,t){return e.map((function(e){return"rule"===e.type&&(e.value="".concat(t," ").concat(e.value),e.value=e.value.replaceAll(",",",".concat(t," ")),e.props=e.props.map((function(e){return"".concat(t," ").concat(e)}))),Array.isArray(e.children)&&"@keyframes"!==e.type&&(e.children=Jn(e.children,t)),e}))}function Zn(e){var t,n,r,o=void 0===e?Yt:e,i=o.options,a=void 0===i?Yt:i,l=o.plugins,s=void 0===l?Gt:l,c=function(e,r,o){return o.startsWith(n)&&o.endsWith(n)&&o.replaceAll(n,"").length>0?".".concat(t):e},u=s.slice();u.push((function(e){e.type===Ve&&e.value.includes("&")&&(e.props[0]=e.props[0].replace(Qn,n).replace(r,c))})),a.prefix&&u.push(Rt),u.push(Pt);var d=function(e,o,i,l){void 0===o&&(o=""),void 0===i&&(i=""),void 0===l&&(l="&"),t=l,n=o,r=new RegExp("\\".concat(n,"\\b"),"g");var s=e.replace(Xn,""),c=It(i||o?"".concat(i," ").concat(o," { ").concat(s," }"):s);a.namespace&&(c=Jn(c,a.namespace));var d,p=[];return St(c,function(e){var t=tt(e);return function(n,r,o,i){for(var a="",l=0;l<t;l++)a+=e[l](n,r,o,i)||"";return a}}(u.concat((d=function(e){return p.push(e)},function(e){e.root||(e=e.return)&&d(e)})))),p};return d.hash=s.length?s.reduce((function(e,t){return t.name||Rn(15),nn(e,t.name)}),5381).toString():"",d}var er=new qn,tr=Zn(),nr=o.createContext({shouldForwardProp:void 0,styleSheet:er,stylis:tr}),rr=(nr.Consumer,o.createContext(void 0));function or(){return(0,o.useContext)(nr)}function ir(e){var t=(0,o.useState)(e.stylisPlugins),n=t[0],r=t[1],i=or().styleSheet,a=(0,o.useMemo)((function(){var t=i;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target,i]),l=(0,o.useMemo)((function(){return Zn({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})}),[e.enableVendorPrefixes,e.namespace,n]);(0,o.useEffect)((function(){Me()(n,e.stylisPlugins)||r(e.stylisPlugins)}),[e.stylisPlugins]);var s=(0,o.useMemo)((function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:a,stylis:l}}),[e.shouldForwardProp,a,l]);return o.createElement(nr.Provider,{value:s},o.createElement(rr.Provider,{value:l},e.children))}var ar=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=tr);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,"@keyframes"))},this.name=e,this.id="sc-keyframes-".concat(e),this.rules=t,An(this,(function(){throw Rn(12,String(n.name))}))}return e.prototype.getName=function(e){return void 0===e&&(e=tr),this.name+e.hash},e}(),lr=function(e){return e>="A"&&e<="Z"};function sr(e){for(var t="",n=0;n<e.length;n++){var r=e[n];if(1===n&&"-"===r&&"-"===e[0])return e;lr(r)?t+="-"+r.toLowerCase():t+=r}return t.startsWith("ms-")?"-"+t:t}var cr=function(e){return null==e||!1===e||""===e},ur=function(e){var t,n,r=[];for(var o in e){var i=e[o];e.hasOwnProperty(o)&&!cr(i)&&(Array.isArray(i)&&i.isCss||_n(i)?r.push("".concat(sr(o),":"),i,";"):Sn(i)?r.push.apply(r,ze(ze(["".concat(o," {")],ur(i),!1),["}"],!1)):r.push("".concat(sr(o),": ").concat((t=o,null==(n=i)||"boolean"==typeof n||""===n?"":"number"!=typeof n||0===n||t in Nt||t.startsWith("--")?String(n).trim():"".concat(n,"px")),";")))}return r};function dr(e,t,n,r){return cr(e)?[]:kn(e)?[".".concat(e.styledComponentId)]:_n(e)?!_n(o=e)||o.prototype&&o.prototype.isReactComponent||!t?[e]:dr(e(t),t,n,r):e instanceof ar?n?(e.inject(n,r),[e.getName(r)]):[e]:Sn(e)?ur(e):Array.isArray(e)?Array.prototype.concat.apply(Gt,e.map((function(e){return dr(e,t,n,r)}))):[e.toString()];var o}function pr(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(_n(n)&&!kn(n))return!1}return!0}var fr=rn(Ft),mr=function(){function e(e,t,n){this.rules=e,this.staticRulesId="",this.isStatic=(void 0===n||n.isStatic)&&pr(e),this.componentId=t,this.baseHash=nn(fr,t),this.baseStyle=n,qn.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var r=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n
2):"";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))r=Tn(r,this.staticRulesId);else{var o=Cn(dr(this.rules,e,t,n)),i=en(nn(this.baseHash,o)>>>0);if(!t.hasNameForId(this.componentId,i)){var a=n(o,".".concat(i),void 0,this.componentId);t.insertRules(this.componentId,i,a)}r=Tn(r,i),this.staticRulesId=i}else{for(var l=nn(this.baseHash,n.hash),s="",c=0;c<this.rules.length;c++){var u=this.rules[c];if("string"==typeof u)s+=u;else if(u){var d=Cn(dr(u,e,t,n));l=nn(l,d+c),s+=d}}if(s){var p=en(l>>>0);t.hasNameForId(this.componentId,p)||t.insertRules(this.componentId,p,n(s,".".concat(p),void 0,this.componentId)),r=Tn(r,p)}}return r},e}(),hr=o.createContext(void 0);hr.Consumer;function gr(e){var t=o.useContext(hr),n=(0,o.useMemo)((function(){return function(e,t){if(!e)throw Rn(14);if(_n(e))return e(t);if(Array.isArray(e)||"object"!=typeof e)throw Rn(8);return t?je(je({},t),e):e}(e.theme,t)}),[e.theme,t]);return e.children?o.createElement(hr.Provider,{value:n},e.children):null}var br={};new Set;function vr(e,t,n){var r=kn(e),i=e,a=!ln(e),l=t.attrs,s=void 0===l?Gt:l,c=t.componentId,u=void 0===c?function(e,t){var n="string"!=typeof e?"sc":Xt(e);br[n]=(br[n]||0)+1;var r="".concat(n,"-").concat(on(Ft+n+br[n]));return t?"".concat(t,"-").concat(r):r}(t.displayName,t.parentComponentId):c,d=t.displayName,p=void 0===d?function(e){return ln(e)?"styled.".concat(e):"Styled(".concat(an(e),")")}(e):d,f=t.displayName&&t.componentId?"".concat(Xt(t.displayName),"-").concat(t.componentId):t.componentId||u,m=r&&i.attrs?i.attrs.concat(s).filter(Boolean):s,h=t.shouldForwardProp;if(r&&i.shouldForwardProp){var g=i.shouldForwardProp;if(t.shouldForwardProp){var b=t.shouldForwardProp;h=function(e,t){return g(e,t)&&b(e,t)}}else h=g}var v=new mr(n,f,r?i.componentStyle:void 0);function y(e,t){return function(e,t,n){var r=e.attrs,i=e.componentStyle,a=e.defaultProps,l=e.foldedComponentIds,s=e.styledComponentId,c=e.target,u=o.useContext(hr),d=or(),p=e.shouldForwardProp||d.shouldForwardProp,f=Wt(t,u,a)||Yt,m=function(e,t,n){for(var r,o=je(je({},t),{className:void 0,theme:n}),i=0;i<e.length;i+=1){var a=_n(r=e[i])?r(o):r;for(var l in a)o[l]="className"===l?Tn(o[l],a[l]):"style"===l?je(je({},o[l]),a[l]):a[l]}return t.className&&(o.className=Tn(o.className,t.className)),o}(r,t,f),h=m.as||c,g={};for(var b in m)void 0===m[b]||"$"===b[0]||"as"===b||"theme"===b&&m.theme===f||("forwardedAs"===b?g.as=m.forwardedAs:p&&!p(b,h)||(g[b]=m[b]));var v=function(e,t){var n=or();return e.generateAndInjectStyles(t,n.styleSheet,n.stylis)}(i,m),y=Tn(l,s);return v&&(y+=" "+v),m.className&&(y+=" "+m.className),g[ln(h)&&!Kt.has(h)?"class":"className"]=y,g.ref=n,(0,o.createElement)(h,g)}(x,e,t)}y.displayName=p;var x=o.forwardRef(y);return x.attrs=m,x.componentStyle=v,x.displayName=p,x.shouldForwardProp=h,x.foldedComponentIds=r?Tn(i.foldedComponentIds,i.styledComponentId):"",x.styledComponentId=f,x.target=r?i.target:e,Object.defineProperty(x,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=r?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var r=0,o=t;r<o.length;r++)Pn(e,o[r],!0);return e}({},i.defaultProps,e):e}}),An(x,(function(){return".".concat(x.styledComponentId)})),a&&En(x,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),x}function yr(e,t){for(var n=[e[0]],r=0,o=t.length;r<o;r+=1)n.push(t[r],e[r+1]);return n}var xr=function(e){return Object.assign(e,{isCss:!0})};function wr(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];if(_n(e)||Sn(e))return xr(dr(yr(Gt,ze([e],t,!0))));var r=e;return 0===t.length&&1===r.length&&"string"==typeof r[0]?dr(r):xr(dr(yr(r,t)))}function Er(e,t,n){if(void 0===n&&(n=Yt),!t)throw Rn(1,t);var r=function(r){for(var o=[],i=1;i<arguments.length;i++)o[i-1]=arguments[i];return e(t,n,wr.apply(void 0,ze([r],o,!1)))};return r.attrs=function(r){return Er(e,t,je(je({},n),{attrs:Array.prototype.concat(n.attrs,r).filter(Boolean)}))},r.withConfig=function(r){return Er(e,t,je(je({},n),r))},r}var _r=function(e){return Er(vr,e)},kr=_r;Kt.forEach((function(e){kr[e]=_r(e)}));var Tr=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=pr(e),qn.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,r){var o=r(Cn(dr(this.rules,t,n,r)),""),i=this.componentId+e;n.insertRules(i,i,o)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,r){e>2&&qn.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function Cr(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=wr.apply(void 0,ze([e],t,!1)),i="sc-global-".concat(on(JSON.stringify(r))),a=new Tr(r,i),l=function(e){var t=or(),n=o.useContext(hr),r=o.useRef(t.styleSheet.allocateGSInstance(i)).current;return t.styleSheet.server&&s(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect((function(){if(!t.styleSheet.server)return s(r,e,t.styleSheet,n,t.stylis),function(){return a.removeStyles(r,t.styleSheet)}}),[r,e,t.styleSheet,n,t.stylis]),null};function s(e,t,n,r,o){if(a.isStatic)a.renderStyles(e,Ht,n,o);else{var i=je(je({},t),{theme:Wt(t,r,l.defaultProps)});a.renderStyles(e,i,n,o)}}return o.memo(l)}function Sr(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];
2var r=Cn(wr.apply(void 0,ze([e],t,!1))),o=on(r);return new ar(o,r)}(function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return"";var n=Vn(),r=Cn([n&&'nonce="'.concat(n,'"'),"".concat(Mt,'="true"'),"".concat(Ut,'="').concat(Ft,'"')].filter(Boolean)," ");return"<style ".concat(r,">").concat(t,"</style>")},this.getStyleTags=function(){if(e.sealed)throw Rn(2);return e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)throw Rn(2);var n=e.instance.toString();if(!n)return[];var r=((t={})[Mt]="",t[Ut]=Ft,t.dangerouslySetInnerHTML={__html:n},t),i=Vn();return i&&(r.nonce=i),[o.createElement("style",je({},r,{key:"sc-0-0"}))]},this.seal=function(){e.sealed=!0},this.instance=new qn({isServer:!0}),this.sealed=!1}e.prototype.collectStyles=function(e){if(this.sealed)throw Rn(2);return o.createElement(ir,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw Rn(3)}})(),"__sc-".concat(Mt,"__");const Pr=kr.div`
3  min-height: 100vh;
4  display: flex;
5`,Ar=kr.aside`
6  width: 260px;
7  background-color: ${e=>{let{theme:t}=e;return t.colors.blue2}};
8  border-right: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
9  padding: 1.5rem;
10  height: 100vh;
11  position: fixed;
12  left: 0;
13  display: flex;
14  flex-direction: column;
15  z-index: 999;
16  transition: transform 0.3s ease;
17
18  @media (max-width: 1100px) {
19    transform: translateX(${e=>{let{isOpen:t}=e;return t?"0":"-100%"}});
20  }
21`,Rr=kr.main`
22  flex: 1;
23  margin-left: 260px;
24  padding: 2rem;
25  overflow-x: hidden;
26
27  @media (max-width: 1100px) {
28    margin-left: 0;
29    padding: 1.25rem;
30    margin-top: 64px;
31  }
32
33  @media (max-width: 480px) {
34    padding: 0.75rem;
35    margin-top: 60px;
36  }
37`,Ir=kr.button`
38  display: none;
39  position: fixed;
40  top: 1rem;
41  right: 1rem;
42  z-index: 1000;
43  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
44  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
45  padding: 0.625rem;
46  border-radius: 10px;
47  cursor: pointer;
48  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
49  min-width: 44px;
50  min-height: 44px;
51  display: none;
52  align-items: center;
53  justify-content: center;
54
55  i {
56    font-size: 24px;
57    display: block;
58  }
59
60  &:active {
61    background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
62  }
63
64  @media (max-width: 1100px) {
65    display: flex;
66  }
67`,Lr=kr.div`
68  display: ${e=>{let{isOpen:t}=e;return t?"block":"none"}};
69  position: fixed;
70  top: 0;
71  left: 0;
72  right: 0;
73  bottom: 0;
74  background: rgba(0, 0, 0, 0.5);
75  z-index: 998;
76`,Or=kr.div`
77  display: flex;
78  align-items: center;
79  gap: 1rem;
80  padding-bottom: 1.5rem;
81  border-bottom: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
82  margin-bottom: 1.5rem;
83`,jr=kr.div`
84  width: 44px;
85  height: 44px;
86  border-radius: 12px;
87  background-size: cover;
88  background-position: center;
89`,zr=kr.div`
90  h2 {
91    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
92    font-size: 1rem;
93    font-weight: 600;
94  }
95
96  p {
97    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
98    font-size: 0.875rem;
99  }
100`,Nr=kr.div`
101  display: flex;
102  flex-direction: column;
103  gap: 0.25rem;
104`,Mr=kr.div`
105  margin-top: auto;
106  padding-top: 1.5rem;
107  border-top: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
108`,Dr=kr(Ie)`
109  display: flex;
110  align-items: center;
111  gap: 0.75rem;
112  padding: 0.75rem;
113  border-radius: 8px;
114  color: ${e=>{let{$isActive:t,theme:n}=e;return t?n.colors.blue9:n.colors.blue11}};
115  background-color: ${e=>{let{$isActive:t,theme:n}=e;return t?n.colors.blue3:"transparent"}};
116  transition: all 0.2s ease;
117  text-decoration: none;
118
119  &:hover {
120    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
121    background-color: ${e=>{let{theme:t}=e;return t.colors.blue3}};
122    transform: translateX(4px);
123  }
124
125  &:active {
126    transform: translateX(2px);
127  }
128
129  i {
130    font-size: 1.25rem;
131  }
132`,Ur=kr.a`
133  display: flex;
134  align-items: center;
135  justify-content: center;
136  gap: 0.6rem;
137  width: 100%;
138  padding: 0.7rem 1rem;
139  background-color: ${e=>{let{theme:t}=e;return t.colors.blue3}};
140  border-radius: 8px;
141  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
142  font-size: 0.9rem;
143  font-weight: 500;
144  text-decoration: none;
145  transition: all 0.2s ease;
146
147  i {
148    font-size: 1.25rem;
149  }
150
151  &:hover {
152    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
153    background-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
154    transform: translateY(-2px);
155  }
156
157  &:active {
158    transform: translateY(-1px);
159  }
160`,Fr={LayoutContainer:Pr,Sidebar:Ar,MainContent:Rr,MobileMenuButton:Ir,Overlay:Lr,Profile:Or,ProfileImage:jr,ProfileInfo:zr,NavLinks:Nr,SocialLinks:Mr,NavLinkWrapper:Dr,YouTubeLink:Ur};var $r=n(579);const Vr=[{path:"/",icon:"bx bx-home",label:"Home"},{path:"/portfolio",icon:"bx bx-book-alt",label:"Portfolio"},{path:"/projects",icon:"bx bx-layer",label:"Projects"},{path:"/blog",icon:"bx bx-pen",label:"Blog"},{path:"/contact",icon:"bx bx-phone",label:"Contact"}],Br=e=>{let{children:t}=e;const[n,r]=(0,o.useState)(!1),i=ee(),a=()=>r(!n),l=e=>{let{item:t}=e;const n=i.pathname===t.path;
160return(0,$r.jsxs)(Fr.NavLinkWrapper,{to:t.path,$isActive:n,onClick:()=>r(!1),children:[(0,$r.jsx)("i",{className:t.icon}),t.label]})};return(0,$r.jsxs)(Fr.LayoutContainer,{children:[(0,$r.jsx)(Fr.MobileMenuButton,{onClick:a,"aria-label":n?"Close navigation menu":"Open navigation menu","aria-expanded":n,children:(0,$r.jsx)("i",{className:"bx bx-menu"})}),(0,$r.jsx)(Fr.Overlay,{isOpen:n,onClick:a}),(0,$r.jsxs)(Fr.Sidebar,{isOpen:n,children:[(0,$r.jsxs)(Fr.Profile,{children:[(0,$r.jsx)(Fr.ProfileImage,{style:{backgroundImage:"url('https://64.media.tumblr.com/6301cf4c94d066c9579b2793781d7f2f/20c99a0f9ebff902-e0/s2048x3072/39d455383d100643b051d73059a46beac9b086a4.pnj')"}}),(0,$r.jsxs)(Fr.ProfileInfo,{children:[(0,$r.jsx)("h2",{children:"Austin Davenport"}),(0,$r.jsx)("p",{children:"Video Editor"})]})]}),(0,$r.jsx)("nav",{children:(0,$r.jsx)(Fr.NavLinks,{children:Vr.map((e=>(0,$r.jsx)(l,{item:e},e.path)))})}),(0,$r.jsx)(Fr.SocialLinks,{children:(0,$r.jsxs)(Fr.YouTubeLink,{href:"https://www.youtube.com/@AustinDavenport",target:"_blank",rel:"noopener noreferrer",children:[(0,$r.jsx)("i",{className:"bx bxl-youtube"}),"YouTube"]})})]}),(0,$r.jsx)(Fr.MainContent,{as:"main",children:t})]})},Hr=Cr`
161  /* Remove the @import and use <link> in index.html instead */
162  
163  * {
164    margin: 0;
165    padding: 0;
166    box-sizing: border-box;
167  }
168
169  body {
170    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
171    background-color: ${e=>{let{theme:t}=e;return t.colors.blue1}};
172    color: ${e=>{let{theme:t}=e;return t.colors.blue12}};
173    min-height: 100vh;
174  }
175
176  a {
177    text-decoration: none;
178    color: inherit;
179  }
180
181  :focus-visible {
182    outline: 2px solid ${e=>{let{theme:t}=e;return t.colors.blue8}};
183    outline-offset: 2px;
184    border-radius: 2px;
185  }
186
187  button, [role="button"] {
188    cursor: pointer;
189  }
190`,Gr={colors:{blue1:"#0f1113",blue2:"#17191c",blue3:"#212326",blue4:"#282a2d",blue5:"#2f3135",blue6:"#383b3e",blue7:"#46484c",blue8:"#5f6165",blue9:"#fafcff",blue10:"#f1f3f6",blue11:"#b1b4b8",blue12:"#eceef1"}},Yr=kr.button`
191  display: inline-flex;
192  align-items: center;
193  gap: 0.5rem;
194  padding: 0.75rem 1.5rem;
195  background-color: ${e=>{let{theme:t,variant:n}=e;return"secondary"===n?t.colors.blue3:t.colors.blue4}};
196  border: none;
197  border-radius: 8px;
198  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
199  font-size: 0.775rem;
200  font-weight: 500;
201  cursor: pointer;
202  transition: all 0.2s ease;
203      font-family: 'Poppins', sans-serif;
204  
205  &:hover {
206    background-color: ${e=>{let{theme:t,variant:n}=e;return"secondary"===n?t.colors.blue4:t.colors.blue5}};
207    transform: translateY(-2px);
208  }
209
210  i {
211    font-size: 1.25rem;
212  }
213`,Wr=e=>{let{variant:t="primary",icon:n,children:r,as:o,...i}=e;return(0,$r.jsxs)(Yr,{as:o,variant:t,...i,children:[n&&(0,$r.jsx)("i",{className:n}),r]})},Kr=[{id:"34daec43-57ea-40ae-994d-e8cddfcd7e5a",title:"How To Fix OBS Audio Delay And Audio Drift",slug:"fix-obs-audio-delay-audio-drift",excerpt:"Learn how to permanently fix OBS audio sync delay, latency, and drifting audio issues using sync offsets, frame conversion, and sample rate matching.",content:'\n# How To Fix OBS Audio Delay And Audio Drift\n\nIf you\u2019ve ever recorded a video in OBS and noticed your lips don\u2019t match your audio, you\u2019re not alone. Audio sync issues are one of the most common problems creators run into when recording tutorials, livestreams, podcasts, or gameplay.\n\nThe good news is that most OBS audio sync issues are completely fixable.\n\nIn this guide, we\u2019ll break down:\n- What audio latency is\n- How OBS sync offset works\n- How to convert frames to milliseconds\n- Why audio drift happens\n- How to permanently fix drifting audio in OBS\n\nIf you\u2019re creating YouTube videos, streaming, or recording long-form content, this can save you hours of editing.\n\n---\n\n## What Causes Audio Delay In OBS?\n\nAudio delay happens when your microphone audio and video capture are arriving at different speeds.\n\nThis usually shows up like this:\n- You speak\n- Your audio plays\n- Your lips move a split second later\n\nThat means your audio is ahead of your video.\n\nIn OBS, this is called **audio latency**, and the fix is built directly into the softw
213are.\n\n---\n\n## Where To Find Sync Offset In OBS\n\nOBS includes a setting called **Sync Offset** inside the Advanced Audio Properties panel.\n\nTo access it:\n\n1. Open OBS\n2. Locate the Audio Mixer\n3. Click the gear icon next to your microphone\n4. Select **Advanced Audio Properties**\n\nYou\u2019ll see a column labeled:\n\n> Sync Offset (ms)\n\nThis controls how many milliseconds your audio is delayed or advanced.\n\n<iframe width="100%" height="400" src="https://www.youtube.com/embed/rBQ8Y0TGU0c?start=0&end=82" title="Finding Sync Offset In OBS" frameborder="0" allowfullscreen></iframe>\n\n---\n\n## Understanding Positive vs Negative Sync Offset\n\nThis part confuses a lot of creators.\n\nA **positive value** delays your audio.\n\nUse this when:\n- Your audio plays BEFORE your video\n- You hear a clap before hands touch on screen\n\nA **negative value** effectively makes your audio appear earlier relative to the rest of the recording.\n\nUse this when:\n- Your audio is BEHIND your video\n- Your lips move before sound plays\n\nThe important thing to understand is:\n\nOBS is actually shifting the audio timing in the recording itself. This is not just a preview effect.\n\n---\n\n## How To Convert Frames To Milliseconds\n\nMost video editors measure sync problems in **frames**, but OBS uses **milliseconds**.\n\nSo you need to convert between the two.\n\n### Step 1 \u2014 Record A Test Clip\n\nCreate a short recording in OBS.\n\nA simple clap test works best:\n- Clap once in front of the camera\n- Record 10 seconds\n- Import into your editor\n\n### Step 2 \u2014 Measure The Offset\n\nFind:\n- The frame where your hands touch\n- The matching audio spike in the waveform\n\nCount how many frames they\u2019re apart.\n\n### Step 3 \u2014 Check Your OBS Frame Rate\n\nIn OBS:\n1. Open Settings\n2. Go to Video\n3. Check your output FPS\n\nMost creators use:\n- 30 FPS\n- 60 FPS\n\n### Step 4 \u2014 Convert Frames To Milliseconds\n\nAt 60 FPS:\n- 1 frame \u2248 16.7 milliseconds\n\nExample:\n- 18 frame delay\n- 18 \xd7 16.7\n- \u2248 300 milliseconds\n\nSo you would enter:\n\n-300 ms\n\ninside OBS Sync Offset.\n\n<iframe width="100%" height="400" src="https://www.youtube.com/embed/rBQ8Y0TGU0c?start=82&end=154" title="Converting OBS Frames To Milliseconds" frameborder="0" allowfullscreen></iframe>\n\n---\n\n## Important OBS Audio Sync Tips\n\nBefore finalizing your sync offset:\n\n### Always Test Again\n\nEven after calculating the exact value, you may still need:\n- \xb15 ms\n- \xb110 ms\n\nTiny adjustments matter.\n\n### Use A Clap Test\n\nThis is still the fastest and most accurate method for checking sync visually.\n\n### OBS Has A Delay Limit\n\nOBS caps sync offset around:\n- 950 milliseconds\n\nIf you need more than that, the issue is likely:\n- Bluetooth latency\n- Audio interface buffering\n- External hardware delays\n\nAt that point, you should troubleshoot the actual hardware causing latency.\n\n---\n\n## What Is Audio Drift?\n\nSome creators run into a different issue entirely.\n\nInstead of a fixed delay, the audio slowly drifts further out of sync over time.\n\nThis usually happens during:\n- Long recordings\n- Podcasts\n- Livestreams\n- Multi-hour gameplay sessions\n\nSymptoms include:\n- Audio starts synced\n- Gets progressively worse\n- Audio length no longer matches video length\n\nThis is NOT a standard latency problem.\n\nThis is called:\n\n## Audio Drift\n\nAnd Sync Offset will not fix it.\n\n---\n\n## The Most Common Cause Of Audio Drift\n\nAudio drift is usually caused by a **sample rate mismatch**.\n\nFor example:\n- Your microphone runs at 44.1kHz\n- OBS runs at 48kHz\n\nBecause both devices are using different timing clocks, they slowly drift apart over time.\n\n---\n\n## How To Fix Audio Drift In OBS\n\n### Step 1 \u2014 Set OBS To 48kHz\n\nInside OBS:\n1. Open Settings\n2. Go to Audio\n3. Set Sample Rate to:\n   - 48kHz\n\n### Step 2 \u2014 Match Windows Audio Settings\n\nIn Windows:\n1. Open Sound Settings\n2. Select your audio device\n3. Open Properties\n4. Go to Advanced\n5. Set the device to:\n   - 48,000Hz\n\nDo this for:\n- Microphones\n- Interfaces\n- Headphones\n- Capture devices\n\nEverything should match.\n\n<iframe width="100%" height="400" src="https://www.youtube.com/embed/rBQ8Y0TGU0c?start=193&end=318" title="Fixing OBS Audio Drift" frameborder="0" allowfullscreen></iframe>\n\n---\n\n## Can You Fix Drift After Recording?\n\nUnfortunately, not automatically.\n\nIf drift already exists in a recording, you\u2019ll need to:\n- Manually resync audio\n- Cut the timeline into sections\n- Realign the waveform repeatedly\n\nIt\u2019s tedious, but once sample rates are fixed, future recordings should stay synced properly.\n\n---\n\n## Final Thoughts\n\nOBS audio sync problems usually come down to one of two issues:\n- Audio latency\n- Audio drift\n\nLatency is fixed using Sync Offset.\n\nDrift is fixed by matching sample rates across all devices.\n\nOnce these settings are dialed in, you\u2019ll save yourself massive amounts of time in post-production and avoid ruining long recordings.\n\nSmall settings changes can completely transform your recording workflow.\n\n',category:"Tutorials",image_url:"https://64.media.tumblr.com/29f5478755aea11ee7341d475e4fc380/9f2d8855982dbf65-4d/s2048x3072/bee0524e2044a63555a7f44a5e9a49eaa208a69d.pnj",featured:!0,published:!0,read_time:8,views:0,likes:0,published_at:"2026-05-24T20:24:30.739191+00:00",created_at:"2026-05-24T20:24:30.739191+00:00",updated_at:"2026-05-24T20:24:30.739191+00:00",youtube_video_id:""},{id:"c5409686-932d-40b3-b5e8-42899b644be7",title:"Clipboard It: Copy / Paste Images Straight into Premiere",slug:"clipboard-it-premiere-pro-plugin-image-import",excerpt:"Stop wasting time importing images into Premiere Pro. Clipboard It lets you copy any image from anywhere and paste it directly into your project bins with automatic format conversion and organization.",content:"## The Problem Every Video E
213ditor Knows Too Well\n\nYou're deep in a creative flow, editing a project in Premiere Pro, when you need to grab a quick reference image or logo from the web. What should take 5 seconds turns into a 3-minute workflow interruption. You have to right-click to save the image, navigate through folders to find the right location, deal with incompatible formats like WebP or AVIF, convert them to something Premiere can actually use, then import into Premiere and finally organize everything into the proper bins.\n\nThis friction breaks your creative momentum dozens of times per project. Every interruption pulls you away from the storytelling, the pacing decisions, and the artistic choices that make great video content. For professional editors working on tight deadlines, these micro-interruptions compound into hours of lost productivity each week.\n\n## Introducing Clipboard It\n\nClipboard It is an Adobe-approved Premiere Pro plugin that eliminates the traditional image import workflow entirely. The concept is beautifully simple: copy any image from anywhere on your computer or the web, and paste it directly into your chosen Premiere bin. No saving, no folder navigation, no format conversion headaches.\n\nThe plugin seamlessly integrates into Premiere Pro's panel system, appearing as a clean, minimal interface that doesn't clutter your workspace. Once you set your destination folder and bin name, the entire process becomes as simple as copy and paste. The image appears in your project panel, properly formatted and organized, ready to use in your timeline.\n\n## How It Actually Works\n\nThe magic happens through intelligent automation that handles all the technical complexity behind the scenes. When you copy an image from any source, Clipboard It recognizes the clipboard content and prepares it for Premiere Pro's specific requirements. You simply click the paste button in the plugin panel, and within seconds, your image appears in the designated bin with proper naming and organization.\n\nThe plugin automatically converts problematic web formats like WebP and AVIF to PNG, preserving transparency and ensuring compatibility with Premiere Pro's media engine. It handles JPEG, PNG, and other standard formats without any user intervention. Custom file naming uses intelligent auto-incrementing, so your images are systematically organized as Image_1, Image_2, and so on, or with custom prefixes that match your project structure.\n\n## System Requirements and Compatibility\n\nClipboard It integrates with Adobe Premiere Pro 2023 and later versions, ensuring compatibility with current professional workflows. The plugin supports both Windows 10+ and macOS 10.15+ operating systems, covering the vast majority of professional editing workstations. System requirements are minimal, requiring only 4GB of RAM and an internet connection for initial activation.\n\nThe lightweight architecture ensures the plugin doesn't impact Premiere Pro's performance or stability. Unlike some extensions that can slow down the host application, Clipboard It operates efficiently in the background, only activating when needed for image processing.\n\n## Installation and Professional Setup\n\nGetting started with Clipboard It follows Adobe's standard plugin installation process. After purchasing from the Adobe Exchange marketplace, the plugin installs automatically through Creative Cloud, integrating seamlessly with your existing Premiere Pro installation. Initial configuration involves setting default folder locations and naming preferences, which can be customized for different project types or client requirements.\n\nProfessional editors often benefit from creating project-specific configurations that match their established folder structures and naming conventions. The plugin respects these organizational systems while eliminating the manual steps that typically slow down asset management.\n\n## Professional Benefits\n\n### Enhanced Productivity\n- Maintains creative flow\n- Reduces context switching\n- Eliminates file management overhead\n- Speeds up revision cycles\n\n### Improved Organization\n- Consistent file naming\n- Automatic bin organization\n- Project-specific folder structure\n- Version control friendly\n\n### Cost Efficiency\n- One-time purchase at $19.99 (launch price)\n- No subscription fees\n- Lifetime updates included\n- ROI achieved in first week of use\n\n## User Testimonials\n\n> \"Clipboard It has transformed how I approach video editing. What used to interrupt my flow for minutes now takes seconds. It's become an essential part of my toolkit.\" - Professional Video Editor\n\n> \"As a content creator, I'm constantly pulling images from research. This plugin has easily saved me hours every week.\" - YouTube Creator\n\n## Comparison with Alternatives\n\nUnlike workaround solutions or external tools:\n- **Native Premiere Integration**: No external applications required\n- **Automatic Processing**: Format conversion happens automatically\n- **Direct Bin Import**: Skips Premiere's import dialogs entirely\n- **Affordable**: One-time purchase vs. subscription tools\n\n## Future Development\n\nPlanned features based on user feedback:\n- Batch paste functionality\n- Custom naming templates\n- Integration with stock photo services\n- Advanced format options\n\n## Getting Started Today\n\nClipboard It is available now on Adobe Exchange with launch pricing through December 31, 2025:\n\n- **Regular Price**: $24.99\n- **Launch Sale**: $19.99\n- **Includes**: Lifetime updates and email support\n\n### Quick Start Tips\n\n1. **Set Default Preferences**: Configure your most-used folder and bin name\n2. **Create Keyboard Shortcut**: Assign a hotkey for even faster access\n3. **Test with Screenshots**: Try the drag-and-drop functionality\n4. **Organize Project Bins**: Use consistent naming for better organization\n\n## Conclusion\n\nVideo editing is a creative process that requires focus and flow. Every interruption, every context switch, every manual file operation pulls 
213you away from your creative vision.\n\nClipboard It eliminates one of the most common workflow interruptions in Premiere Pro, letting you maintain momentum and focus on what matters: creating compelling content.\n\nThe plugin pays for itself in time saved within the first week of use. For professional editors, content creators, and anyone who values their creative flow, Clipboard It represents a fundamental workflow improvement.\n\n**Available now on Adobe Exchange**: [clipboard.it](https://clipboard.it.com/)\n\n### Ready to Transform Your Editing Workflow?\n\nDownload Clipboard It today and experience the difference of frictionless image importing. Your creative flow - and your deadline schedule - will thank you.\n\n\nDownload Clipboard It today and experience the difference of frictionless image importing. Your creative flow - and your deadline schedule - will thank you.",category:"Video Editing",image_url:"https://64.media.tumblr.com/53a71223aa60e721f77f8f5ebd50dc94/88dcf1fd9aea7926-7f/s2048x3072/d9f549f15f4bc2c7dc4f7825945da9216f139bb3.pnj",featured:!0,published:!0,read_time:8,views:0,likes:0,published_at:"2025-10-28T03:59:39.712851+00:00",created_at:"2025-10-28T03:59:39.712851+00:00",updated_at:"2025-10-28T03:59:39.712851+00:00",youtube_video_id:"XQDdJJSzntQ"},{id:"409cc297-917c-41bd-9551-a79723337b66",title:"Building My Own VidIQ",slug:"building-my-own-vidiq",excerpt:"Learn how I turned frustration with expensive analytics into YouTool.io, a free suite of professional YouTube tools designed to help every creator grow.",content:"## I Built YouTool.io to Level the Playing Field for Creators\n\nIf you've ever tried to grow a YouTube channel, you know the story. You juggle ideas, filming and editing while buried under graphs, metadata and inscrutable algorithms. I've been there. A few years ago I set out to fix the problem that kept me and countless other creators up at night: **why are professional analytics tools so expensive, complicated or hidden behind paywalls?**\n\n### The Spark That Started It All\n\nWhen I was analyzing my own channel, I realized I was spending more time wrangling data than making videos. That frustration turned into a question: *what if creators of every size had access to the same quality of insights as the top channels \u2014 without paying a dime?* That question became **YouTool.io**. On our home page we boldly state our promise to \"accelerate your YouTube growth\" through \"professional\u2011grade analytics and optimization tools\" \u2014 not because it sounds catchy, but because I lived the struggle.\n\nOver countless nights and lots of coffee, a small team of developers and YouTube enthusiasts joined me to bring YouTool to life. Our **About** page shares how this side project grew into something much bigger when we discovered how many creators were facing the same challenges.\n\n> **Our mission:** *to democratize YouTube analytics by providing powerful, professional\u2011grade tools that are completely free and accessible to creators of all sizes*.  \n> We'll never charge for basic analytics, hide features behind tiers, or sell your data \u2014 that's a promise.\n\n### What Sets YouTool Apart?\n\nHere's what I'm most proud of:\n\n- **Always Free** \u2013 zero hidden fees or premium tiers.  \n- **Human\u2011Friendly** \u2013 designed so you don't need a degree to understand your data.  \n- **Privacy\u2011First** \u2013 your data belongs to you, not us.  \n- **Made by Creators** \u2013 every tool is built by people who know what it's like to press \"Upload\".  \n\n### Meet the Tools\n\nWe've packed more than **15 tools** into YouTool, organized to match the way creators work. Whether you're deep\u2011diving into channel performance, researching keywords or testing thumbnails, there's a tool for that.\n\n- **Deep Analytics** \u2013 Track video performance, engagement and audience insights to see what's working and what isn't.  \n- **SEO Optimization** \u2013 Uncover keywords, tags, titles and competitor strategies to boost discoverability.  \n- **Success Patterns** \u2013 Study viral videos and top creators to identify trends, content gaps and opportunities.  \n\nSome of my favorites:\n\n*Channel Analyzer* for growth tracking and competitor analysis, *Video Analyzer* for per\u2011video metrics, *Keyword Analyzer* to find high\u2011value search terms, and the AI\u2011powered *Tag Generator* to optimize your tags. There's also a *Thumbnail Tester* to see exactly how your artwork will appear across devices, plus tools to compare channels and uncover outlier hits.\n\n### Your Guided Growth Path\n\nAnalytics are only useful if you know 
213what to do next. That's why we built an **interactive learning path**. Think of it as your roadmap:\n\n- **Analyze & Understand** \u2013 start with Channel Analyzer, Video Analyzer, Keyword Analyzer, Outlier Finder and Comment Downloader to evaluate what's really happening on your channel.  \n- **Optimize & Execute** \u2013 use the Channel Consultant, Tag Generator and Thumbnail Tester to make data\u2011driven improvements.  \n- **Scale & Accelerate** \u2013 when you're ready to grow faster, tools like the QR Code Generator, Thumbnail Downloader, Subscriber Link Creator and Color Picker help streamline workflows and strengthen your brand.  \n\n### Did You Know? Utility Tools Make Life Easier\n\nBeyond analytics, we've added a suite of utilities to simplify the day\u2011to\u2011day. These tools save time and ensure your content and channel look polished:\n\n- **Comment Downloader** \u2013 pull all comments from any video for sentiment analysis.  \n- **Content Moderation Checker** \u2013 scan scripts and descriptions for potential policy issues before you hit publish.  \n- **Color Palette & Picker** \u2013 extract beautiful color schemes from images and copy hex codes.  \n- **YouTube Calculator & Comment Picker** \u2013 estimate earnings and run fair giveaways.  \n- **Subscribe Link Generator** \u2013 create a personalized subscription link that invites viewers to join your community.  \n\n### Our Impact & Roadmap\n\nSince launch, YouTool has analyzed **over 50 000 videos**, offered **15+ free tools** and helped **1 000+ creators** around the world. Every week we listen to feedback and roll out improvements. Our roadmap is shaped by what creators actually need \u2014 not by what we think they should want. If you've got an idea, drop me a line; YouTool exists because of creators like you.\n\n### Join Us \u2013 It's Free\n\nThousands of creators already trust YouTool to understand their performance, optimize their content and achieve their goals. Our home page invites you to start analyzing your channel today. Whether you're just uploading your first video or you're managing a thriving channel, YouTool gives you the insights you need \u2014 without the cost or complexity.\n\nReady to level the playing field? **[Visit YouTool.io](https://youtool.io)** and let's grow together.\n\n\u2014 **Austin Davenport**",category:"Announcements",image_url:"https://64.media.tumblr.com/bc7008fd1bf9c3eb021945eed64bf52e/89a1c25a6c9a85d3-d0/s2048x3072/16a11c45b02fe249c90d4761d1c258211a949b5f.pnj",featured:!0,published:!0,read_time:9,views:0,likes:0,published_at:"2025-08-12T02:00:59.937229+00:00",created_at:"2025-08-12T02:00:59.937229+00:00",updated_at:"2025-08-12T02:00:59.937229+00:00"},{id:"ac6933ec-3bb4-478e-8d4d-6d57fb69b633",title:"Upgrade to Windows 11: A Simple Guide for Windows 10 Users",slug:"upgrade-to-windows-11-guide",excerpt:"Still stuck on Windows 10? This step-by-step guide helps you fix TPM issues and smoothly upgrade to Windows 11\u2014even if your PC says it\u2019s ineligible.",content:"\n## Introduction\nMany users are still running Windows 10 either due to uncertainty or compatibility errors. This guide walks you through upgrading from Windows 10 to Windows 11, including TPM 2.0 BIOS settings and installation instructions.\n\nPC Health Check (Microsoft): https://support.microsoft.com/en-us/windows/how-to-use-the-pc-health-check-app-9c8abd9b-03ba-4e67-81ef-36f37caa7844\n\nWindows 11 Installation Assistant: https://www.microsoft.com/en-us/software-download/windows11\n\n## Step 1: Check Eligibility\nDownload Microsoft\u2019s **PC Health Check Tool**. If you're eligible, skip ahead. If not, don\u2019t panic\u2014there\u2019s a fix.\n\n## Step 2: Understand TPM 2.0 Requirements\nYou may see an ineligibility error related to TPM 2.0. This can often be resolved by enabling TPM in your BIOS settings.\n\n## Step 3: Enable TPM in BIOS\n1. Press `Windows + R` and enter `tpm.msc`\n2. If TPM is not found, restart into BIOS:\n   - Go to **Settings > Update & Security > Recovery > Restart Now**\n   - Navigate: **Troubleshoot > Advanced Options > UEFI Firmware Settings**\n   - Enable **Intel PTT** under **Peripherals**\n   - Set **Security Device Support** to Enabled under **Trusted Computing**\n\n## Step 4: Install Windows 11\nUse the **Windows 11 Installation Assistant**. Follow the prompts to complete the upgrade. This will take 20\u201340 minutes and your files should remain intact.\n\n> Pro Tip: Always back up your files before any major OS upgrade.\n\n## Summary\nEven if your PC says it\u2019s not eligible, you can likely upgrade by enabling TPM. Follow the steps, run the Installation Assistant, and enjoy Windows 11.\n\n## Key Takeaways\n- Use PC Health Check to verify eligibility\n- Enable TPM 2.0 in BIOS if needed\n- Windows 11 upgrade is possible even on custom builds\n\n",category:"Tutorials",image_url:"https://64.media.tumblr.com/dc04d21c18163f2abf9779fe8fb062f8/10f2c05eaf745466-f9/s2048x3072/a84711a6cbb470e31c126542e3487df90dfa3ca1.pnj",featured:!0,published:!0,read_time:5,views:0,likes:0,published_at:"2025-05-28T20:29:46.671148+00:00",created_at:"2025-05-28T20:29:46.671148+00:00",updated_at:"2025-05-28T20:29:46.671148+00:00",youtube_video_id:"XpYrLeXIjwI"},{id:"d6557a3e-2c3e-4144-a38d-a29ba1111577",title:"Fifine Profile3 Review: Pro Audio on a Budget",slug:"fifine-profile3-review-pro-audio-on-a-budget",excerpt:"Discover how the Fifine Profile3 USB microphone delivers professional-grade sound quality with user-friendly features, all at an affordable price point.",content:"## Introduction\n\nIn the realm of content creation, audio quality can make or break your production. The Fifine Profile3 USB microphone emerges as a game-changer, offering professional-grade sound without the hefty price tag.\n\n## Design and Build Quality\n\n- **All-Metal Construction:** Ensures durability and a premium feel.\n- **Compact Form Factor:** Ideal for desktop setups and on-the-go recording.\n- **User-Friendly Controls:** Front-facing mute button and intuitive knobs for gain and headphone volume.\n\n## Audio Performance\n\n- **24-bit/192kHz Resolution:** Delivers high-fidelity sound that captures every nuance.\n- **Cardioid Polar Pattern:** Focuses on your voice while minimizing background noise.\n- **Low-Cut Filter:** Helps eliminate room rumble and low-frequency noise for cleaner audio.\n\n## Connectivity and Compatibility\n\n- **USB-C Interface:** Enables plug-and-play functionality with modern devices.\n- **Real-Time Monitoring:** Lets you hear your voice without delay.\n- **Monitor Mix Control:** Adjust the balance between your voice and computer audio on the fly.\n\n## Ideal Use Cases\n\n- **Podcasters and Streamers:** Great for solo creators and live broadcasts.\n- **Musicians:** Perfect for vocals and instrumentals, with flexible monitoring.\n- **Remote Workers:** Simplifies video calls and virtual meetings with clear audio.\n\n## Pros and Cons\n\n**Pros:**\n\n- High-resolution audio capture.\n- Sturdy and sleek design.\n- User-friendly controls.\n- Affordable price point.\n\n**Cons:**\n\n- USB-C cable placement may limit stand rotation.\n- Lacks included USB-C to USB-A adapter.\n\n## Conclusion\n\nThe Fifine Profile3 stands out as a top-tier choice for creators seeking quality and affordability. Its combination of professional features and ease of use makes it a valuable addition to any setup.\n\n## Key Takeaways\n\n- Offers professional-grade audio at an accessible price.\n- Features intuitive controls and robust build quality.\n- Suitable for a wide range of content creation needs.\n",category:"Tech Reviews",image_url:"https://64.media.tumblr.com/d87f001ed68003ef4e6e04b5936f28b7/983e40e16bd91724-a9/s2048x3072/9828d4e7d598af9f923a096988a185be63e61a74.pnj",featured:!0,published:!0,read_time:5,views:0,likes:0,published_at:"2025-05-21T03:27:25.550046+00:00",created_at:"2025-05-21T03:27:25.550046+00:00",updated_at:"2025-05-21T03:27:25.550046+00:00",youtube_video_id:"pJJ0ws44sJw"},{id:"5b2ab00f-1f99-4017-bb76-f0ce5cdfea4f",title:"Marble Racing Game",slug:"marble-racing",excerpt:"An interactive 3D marble racing game with betting mechanics built using Three.js",content:'## Marble Racing Game\n\nThis interactive 3D marble racing game was built using Three.js for the physics simulation and rendering. The game includes a betting system where players can wager on different c
213olored marbles to win virtual currency.\n\n### Development Process\n\nThe game was developed in two main phases:\n1. **Physics and Game Mechanics**: The core simulation was developed using Grok 3 AI to create the Three.js physics engine that powers the marble movement and collisions.\n2. **User Interface and Visuals**: Claude AI was used to enhance the UI design, create smoother animations, and improve the overall user experience.\n\n### Key Features\n\n- 3D physics simulation with realistic marble movement\n- Dynamic track generation that changes with each race\n- Betting system with different payouts based on finishing position\n- Track color varies based on width (blue to red gradient)\n- Countdown timer for race starts\n- Statistics tracking for win rates and balance\n\n### Technical Details\n\nThe game uses several advanced web technologies:\n- Three.js for 3D rendering and physics\n- CSS3 for styling and animations\n- ES6 JavaScript for game logic\n\n### How to Play\n\n1. Choose a marble to bet on\n2. Set your wager amount\n3. Press "Start Race" and watch your marble compete!\n4. Marbles that finish 1st, 2nd, or 3rd will pay out at different rates\n5. Try to reach $10,000 before 20 races to win!',category:"Code Projects",image_url:"https://64.media.tumblr.com/975406e0fc23729e811c737bd34ea8ef/996a325fcd52a59a-09/s2048x3072/8478bf267257c547dbc761ffe4172e1b707cbaea.pnj",featured:!1,published:!0,read_time:5,views:0,likes:0,published_at:"2025-05-20T05:04:51.013162+00:00",created_at:"2025-05-20T05:04:51.013162+00:00",updated_at:"2025-05-20T05:04:51.013162+00:00",html_code:"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\">\n    <title>Marble Racing Simulator</title>\n    \x3c!-- Updated to different fonts --\x3e\n    <link href=\"https://fonts.googleapis.com/css2?family=Russo+One&family=Exo+2:wght@400;700&display=swap\" rel=\"stylesheet\">\n    \x3c!-- Boxicons for money icons and other symbols --\x3e\n    <link href='https://unpkg.com/[email protected]/css/boxicons.min.css' rel='stylesheet'>\n    <style>\n        body { \n            margin: 0; \n            overflow: hidden; \n            user-select: none;\n            -webkit-user-select: none;\n            font-family: 'Exo 2', Arial, sans-serif;\n            color: white;\n            background: #222;\n            touch-action: manipulation;\n        }\n        canvas { \n            display: block; \n        }\n        #info {\n            position: absolute;\n            top: 10px;\n            left: 10px;\n            color: white;\n            font-size: 14px;\n            background: rgba(0, 0, 0, 0.5);\n            padding: 10px;\n            border-radius: 8px;\n            backdrop-filter: blur(5px);\n            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);\n            z-index: 100;\n            width: 220px;\n            min-height: 80px;\n            max-height: 40vh;\n            overflow-y: auto;\n        }\n        .game-screen {\n            position: fixed;\n            top: 0;\n            left: 0;\n            width: 100%;\n            height: 100%;\n            background: linear-gradient(to bottom, #1a237e, #000000);\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            z-index: 1000;\n            padding: 10px;\n            box-sizing: border-box;\n        }\n        .screen-content {\n            text-align: center;\n            background: rgba(30, 30, 40, 0.95);\n            padding: 20px;\n            border-radius: 20px;\n            box-shadow: 0 0 40px rgba(0, 0, 0, 0.6);\n            max-width: 800px;\n            width: 90%;\n            max-height: 90vh;\n            overflow-y: auto;\n        }\n        .game-title {\n            font-family: 'Russo One', sans-serif;\n            font-size: 48px;\n            margin-bottom: 30px;\n            background: linear-gradient(45deg, #4FC3F7, #7C4DFF);\n            -webkit-background-clip: text;\n            background-clip: text;\n            color: transparent;\n            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);\n        }\n        h2, h3 {\n            font-family: 'Russo One', sans-serif;\n            color: #ddd;\n        }\n        .menu-button {\n            width: 80%;\n            padding: 15px;\n            margin: 10px auto;\n            font-size: 20px;\n            cursor: pointer;\n            border: none;\n            border-radius: 10px;\n            color: white;\n            transition: transform 0.2s, background 0.3s;\n            display: block;\n            font-family: 'Exo 2', Arial, sans-serif;\n            min-height: 50px;\n        }\n        .menu-button:hover {\n            transform: translateY(-2px);\n        }\n        .play-button {\n            background: linear-gradient(45deg, #2196F3, #1976D2);\n        }\n        .play-button:hover {\n            background: linear-gradient(45deg, #1976D2, #1565C0);\n        }\n        .back-button {\n            background: linear-gradient(45deg, #546E7A, #455A64);\n            width: auto;\n            padding: 10px 20px;\n            font-size: 16px;\n            margin: 10px;\n        }\n        .stats-container {\n            margin-top: 20px;\n            padding: 15px;\n            background: rgba(255, 255, 255, 0.1);\n            border-radius: 10px;\n        }\n        .stats-item {\n            margin: 10px 0;\n            font-size: 16px;\n            color: #B0BEC5;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n        }\n        .stats-item i {\n            font-size: 1.2em;\n            color: #64B5F6;\n        }\n        .goal-text {\n            font-family: 'Russo One', sans-serif;\n            color: #FFD700;\n            font-size: 1.2em;\n            margin-bottom: 15px;\n        }\n        /* Wager Screen Styles */\n        #marblesContainer {\n            display: grid;\n            grid-template-columns: repeat(6, 1fr);\n            gap: 5px;\n            margin: 10px 0;\n            padding: 10px;\n            background: rgba(255, 255, 255, 0.05);\n            border-radius: 10px;\n        }\n        .marble-option {\n            aspect-ratio: 1;\n            border-radius: 50%;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-weight: bold;\n            transition: transform 0.2s, box-shadow 0.2s;\n            box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);\n            min-width: 40px;\n            min-height: 40px;\n            max-width: 50px;\n            max-height: 50px;\n            margin: 0 auto;\n        }\n        .marble-option:hover {\n            transform: scale(1.1);\n            box-shadow: 0 0 20px rgba(255, 255, 255, 0.2);\n        }\n        .marble-option.selected {\n            border: 3px solid white;\n            box-shadow: 0 0 20px rgba(255, 255, 255, 0.4);\n        }\n        .marble-option p {\n            color: black;\n            font-weight: bold;\n            text-shadow: none;\n            margin: 0;\n            padding: 0;\n        }\n        #wagerInput {\n            background: rgba(255, 255, 255, 0.1);\n            border: 2px solid rgba(255, 255, 255, 0.2);\n            border-radius: 8px;\n            padding: 10px;\n            color: white;\n            font-size: 18px;\n            width: 120px;\n            text-align: center;\n            margin: 10px 0;\n        }\n        #wagerInput:focus {\n            outline: none;\n            border-color: #2196F3;\n        }\n        .wager-label {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 5px;\n            margin-bottom: 5px;\n        }\n        .wager-label i {\n            color: #FFD700;\n        }\n        #balance, #payoutText, #newBalanceText {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 5px;\n            font-size: 1.2em;\n            font-weight: bold;\n        }\n        #balance i, #payoutText i, #newBalanceText i {\n            color: #FFD700;\n        }\n        .amount-control {\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            gap: 10px;\n            margin: 10px 0;\n        }\n        .amount-btn {\n            background: rgba(255, 255, 255, 0.1);\n            border: none;\n            color: white;\n            width: 44px;\n            height: 44px;\n            border-radius: 50%;\n            font-size: 20px;\n            cursor: pointer;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            transition: background 0.2s;\n        }\n        .amount-btn:hover {\n            background: rgba(255, 255, 255, 0.2);\n        }\n        /* Game Over Screen */\n        .game-result {\n            font-size: 24px;\n            margin: 20px 0;\n            padding: 15px;\n            border-radius: 10px;\n        }\n        .win-result {\n            background: rgba(76, 175, 80, 0.3);\n            color: #CCFF90;\n        }\n        .lose-result {\n            background: rgba(244, 67, 54, 0.3);\n            color: #FFCDD2;\n        }\n        .final-stats {\n            font-size: 18px;\n            margin: 20px 0;\n        }\n\n        /* Mobile-specific styles */\n        @media (max-width: 768px) {\n            .game-title {\n                font-size: 36px;\n                margin-bottom: 15px;\n            }\n            \n            .screen-content {\n                padding: 12px;\n                width: 95%;\n                max-height: 100vh;\n            }\n            \n            .menu-button {\n                width: 100%;\n                padding: 10px;\n                font-size: 18px;\n                margin: 8px auto;\n            }\n            \n            .back-button {\n                padding: 8px 12px;\n                font-size: 14px;\n                margin: 3px;\n            }\n            \n            .stats-container {\n                padding: 8px;\n                margin-top: 10px;\n            }\n            \n            .stats-item {\n                font-size: 14px;\n                margin: 5px 0;\n            }\n            \n            .goal-text {\n                font-size: 1em;\n                margin-bottom: 10px;\n            }\n            \n            #info {\n                width: 160px;\n                font-size: 12px;\n                padding: 6px;\n                top: 5px;\n                left: 5px;\n            }\n            \n            .game-result {\n                font-size: 18px;\n                padding: 10px;\n                margin: 15px 0;\n            }\n            \n            .final-stats {\n                font-size: 16px;\n                margin: 15px 0;\n            }\n            \n            h2 {\n                font-size: 20px;\n                margin: 10px 0;\n            }\n            \n            h3 {\n                font-size: 16px;\n                margin: 8px 0;\n            }\n            \n            #wagerInput {\n                width: 80px;\n                font-size: 16px;\n                padding: 8px;\n            }\n            \n            .amount-btn {\n                width: 36px;\n                height: 36px;\n            }\n        }\n        \n        @media (max-width: 480px) {\n            .game-title {\n                font-size: 24px;\n                margin-bottom: 10px;\n            }\n            \n            .screen-content {\n                padding: 10px;\n            }\n            \n            #info {\n                width: 130px;\n                font-size: 10px;\n                padding: 5px;\n            }\n            \n            .menu-button {\n                font-size: 15px;\n                padding: 8px;\n                margin: 5px auto;\n            }\n            \n            .amount-control {\n                gap: 5px;\n            }\n            \n            .marble-option p {\n                font-size: 10px;\n            }\n            \n            #marblesContainer {\n                padding: 5px;\n                margin: 5px 0;\n                gap: 3px;\n            }\n            \n            .marble-option {\n                min-width: 36px;\n                min-height: 36px;\n            }\n        }\n    </style>\n</head>\n<body>\n    <div id=\"info\">\n        \x3c!-- Rankings will always be visible --\x3e\n    </div>
213\n\n    \x3c!-- Main Menu Screen --\x3e\n    <div id=\"mainMenuScreen\" class=\"game-screen\">\n        <div class=\"screen-content\">\n            <h1 class=\"game-title\">Marble Racing</h1>\n            <button class=\"menu-button play-button\" onclick=\"showScreen('wagerScreen')\">Play</button>\n            <div class=\"stats-container\">\n                <div class=\"goal-text\">Goal: Get <i class='bx bx-dollar-circle'></i>10,000 in 20 or fewer races!</div>\n                <div class=\"stats-item\"><i class='bx bx-dollar-circle'></i> Current Balance: $1000</div>\n                <div class=\"stats-item\"><i class='bx bx-run'></i> Races Completed: 0/20</div>\n                <div class=\"stats-item\"><i class='bx bx-check-circle'></i> Win Rate: 0%</div>\n            </div>\n        </div>\n    </div>\n\n    \x3c!-- Wager Screen --\x3e\n    <div id=\"wagerScreen\" class=\"game-screen\" style=\"display: none;\">\n        <div class=\"screen-content\">\n            <button class=\"menu-button back-button\" onclick=\"showScreen('mainMenuScreen')\"><i class='bx bx-arrow-back'></i> Back</button>\n            <h2><i class='bx bx-coin'></i> Place Your Bet</h2>\n            <p id=\"balance\">Balance: <i class='bx bx-dollar-circle'></i>1000</p>\n            \n            <div style=\"display: flex; flex-direction: column; gap: 5px;\">\n                <div id=\"marbleSelection\" style=\"margin-bottom: 0;\">\n                    <h3 style=\"margin: 5px 0;\"><i class='bx bx-circle'></i> Choose Marble:</h3>\n                    <div id=\"marblesContainer\">\n                        \x3c!-- Marble buttons will be generated here --\x3e\n                    </div>\n                </div>\n                \n                <div id=\"wagerSection\" style=\"margin-top: 0;\">\n                    <label class=\"wager-label\" for=\"wagerInput\"><i class='bx bx-money'></i> Wager:</label>\n                    <div class=\"amount-control\">\n                        <button class=\"amount-btn\" onclick=\"adjustWager(-10)\"><i class='bx bx-minus'></i></button>\n                        <input type=\"number\" id=\"wagerInput\" min=\"1\" value=\"100\">\n                        <button class=\"amount-btn\" onclick=\"adjustWager(10)\"><i class='bx bx-plus'></i></button>\n                    </div>\n                </div>\n            </div>\n            \n            <button class=\"menu-button play-button\" onclick=\"startRace()\"><i class='bx bx-flag'></i> Start Race</button>\n        </div>\n    </div>\n\n    \x3c!-- End Screen --\x3e\n    <div id=\"endScreen\" class=\"game-screen\" style=\"display: none;\">\n        <div class=\"screen-content\">\n            <h2><i class='bx bx-trophy'></i> Race Results</h2>\n            <p id=\"resultText\"></p>\n            <p id=\"payoutText\"></p>\n            <p id=\"newBalanceText\"></p>\n            <p id=\"racesRemainingText\"></p>\n            <button class=\"menu-button play-button\" onclick=\"showScreen('wagerScreen')\"><i class='bx bx-refresh'></i> New Race</button>\n        </div>\n    </div>\n\n    \x3c!-- Game Over Screen --\x3e\n    <div id=\"gameOverScreen\" class=\"game-screen\" style=\"display: none;\">\n        <div class=\"screen-content\">\n            <h2><i class='bx bx-game'></i> Game Over</h2>\n            <div id=\"gameResultText\" class=\"game-result\"></div>\n            <div class=\"final-stats\">\n                <p>Final Balance: <span id=\"finalBalance\"></span></p>\n                <p>Races Completed: <span id=\"finalRaces\"></span></p>\n            </div>\n            <button class=\"menu-button play-button\" onclick=\"resetGame()\"><i class='bx bx-restart'></i> Play Again</button>\n        </div>\n    </div>\n\n    <script src=\"https://cdnjs.cloudflare.com/ajax/libs/three.js/r134/three.min.js\"><\/script>\n    <script>\n    // Add this at the beginning of your script section\n    function showScreen(screenId) {\n        // Hide all screens\n        const screens = ['mainMenuScreen', 'wagerScreen', 'endScreen', 'gameOverScreen'];\n        screens.forEach(screen => {\n            document.getElementById(screen).style.display = 'none';\n        });\n        \n        // Show the requested screen\n        document.getElementById(screenId).style.display = 'flex';\n        \n        // Special handling for different screens\n        if (screenId === 'wagerScreen') {\n            updateStartScreen();\n        }
213 else if (screenId === 'mainMenuScreen') {\n            // Update main menu stats\n            const statsContainer = document.querySelector('.stats-container');\n            statsContainer.innerHTML = `\n                <div class=\"goal-text\">Goal: Get <i class='bx bx-dollar-circle'></i>10,000 in 20 or fewer races!</div>\n                <div class=\"stats-item\"><i class='bx bx-dollar-circle'></i> Current Balance: $${playerBalance}</div>\n                <div class=\"stats-item\"><i class='bx bx-run'></i> Races Completed: ${totalRaces}/20</div>\n                <div class=\"stats-item\"><i class='bx bx-check-circle'></i> Win Rate: ${totalRaces > 0 ? ((playerWins / totalRaces) * 100).toFixed(1) : 0}%</div>\n            `;\n        }\n    }\n\n    function adjustWager(amount) {\n        const input = document.getElementById('wagerInput');\n        let newValue = parseInt(input.value) + amount;\n        newValue = Math.max(1, Math.min(newValue, playerBalance));\n        input.value = newValue;\n    }\n\n    // Info panel reference\n    const infoDiv = document.getElementById('info');\n\n    // Handle mobile device orientation changes\n    window.addEventListener('orientationchange', function() {\n        setTimeout(function() {\n            onWindowResize();\n        }, 100);\n    });\n\n    // Reset game\n    function resetGame() {\n        playerBalance = 1000;\n        totalRaces = 0;\n        playerWins = 0;\n        winCounts = [0, 0, 0, 0, 0, 0];\n        showScreen('mainMenuScreen');\n    }\n\n    // Scene setup\n    const scene = new THREE.Scene();\n    scene.background = new THREE.Color(0x87CEEB);\n    const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);\n    const renderer = new THREE.WebGLRenderer({ antialias: true });\n    renderer.setSize(window.innerWidth, window.innerHeight);\n    renderer.shadowMap.enabled = true;\n    renderer.shadowMap.type = THREE.PCFSoftShadowMap;\n    document.body.appendChild(renderer.domElement);\n\n    // Lighting\n    const ambientLight = new THREE.AmbientLight(0xffffff, 0.5);\n    scene.add(ambientLight);\n    const directionalLight = new THREE.DirectionalLight(0xffffff, 0.8);\n    directionalLight.position.set(0, 100, 0);\n    directionalLight.castShadow = true;\n    directionalLight.shadow.mapSize.width = 2048;\n    directionalLight.shadow.mapSize.height = 2048;\n    directionalLight.shadow.camera.near = 0.5;\n    directionalLight.shadow.camera.far = 500;\n    directionalLight.shadow.camera.left = -100;\n    directionalLight.shadow.camera.right = 100;\n    directionalLight.shadow.camera.top = 200;  // Increased to cover track start\n    directionalLight.shadow.camera.bottom = -200; // Extended to cover below track\n    scene.add(directionalLight);\n\n    // Track parameters - now with variable width\n    let trackWidth = 14; // Will be randomized between 14-19\n    const trackLength = 300;\n    const controlPoints = 30;\n    const segmentCount = 150;\n\n    // Track variables\n    let track;\n    let trackCurve;\n    let startRamp;\n\n    // Static texture\n    const canvas = document.createElement('canvas');\n    canvas.width = 256;\n    canvas.height = 256;\n    const ctx = canvas.getContext('2d');\n    ctx.fillStyle = '#808080';\n    ctx.fillRect(0, 0, 256, 256);\n    ctx.strokeStyle = '#606060';\n    ctx.lineWidth = 4;\n    for (let i = 0; i < 256; i += 20) {\n        ctx.beginPath();\n        ctx.moveTo(i, 0);\n        ctx.lineTo(i, 256);\n        ctx.stroke();\n    }\n    const texture = new THREE.CanvasTexture(canvas);\n    texture.wrapS = THREE.RepeatWrapping;\n    texture.wrapT = THREE.RepeatWrapping;\n    texture.repeat.set(10, 1);\n\n    // Track material (will be updated based on width)\n    const trackMaterial = new THREE.MeshPhongMaterial({ \n        map: texture,\n        color: 0x2142d9, // Default blue\n        side: THREE.DoubleSide,\n        shininess: 10\n    });\n\n    // Ramp material\n    const rampMaterial = new THREE.MeshPhongMaterial({\n        color: 0x333333,\n        side: THREE.DoubleSide,\n        shininess: 20\n    });\n\n    // Create checkered texture for finish line\n    function createCheckeredTexture() {\n        const canvas = document.createElement('canvas');\n        canvas.width = 64;\n        canvas.height = 64;\n        const ctx = canvas.getContext('2d');\n        \n        // Create checkered pattern\n        const squareSize = 8;\n        for (let x = 0; x < canvas.width; x += squareSize) {\n            for (let y = 0; y < canvas.height; y += squareSize) {\n                const isEven = ((x / squareSize) + (y / squareSize)) % 2 === 0;\n                ctx.fillStyle = isEven ? '#ffffff' : '#000000';\n                ctx.fillRect(x, y, squareSize, squareSize);\n            }\n        }
213\n        \n        return new THREE.CanvasTexture(canvas);\n    }\n\n    // Generate track with variable width and color\n    function generateTrack() {\n        // Randomize track width between 14 and 19\n        trackWidth = 14 + Math.random() * 5;\n        \n        // Determine track color based on width (blue at 14, red at 19, purple in between)\n        const t = (trackWidth - 14) / 5; // Normalized value 0-1\n        const r = Math.floor(33 + (211 - 33) * t);  // 0x21 to 0xD3\n        const g = Math.floor(66 + (33 - 66) * t);   // 0x42 to 0x21\n        const b = Math.floor(217 + (33 - 217) * t); // 0xD9 to 0x21\n        const trackColor = (r << 16) | (g << 8) | b;\n        \n        // Update track material color\n        trackMaterial.color.set(trackColor);\n        \n        const trackPoints = [];\n        let currentHeight = 150;\n        let currentX = 0;\n        \n        for (let i = 0; i < controlPoints; i++) {\n            const t = i / (controlPoints - 1);\n            const z = -trackLength / 2 + t * trackLength;\n            if (i > 0) {\n                currentX += (Math.random() - 0.5) * 15 - currentX * 0.03;\n                currentX = Math.max(Math.min(currentX, 60), -60);\n                \n                // Increased steepness variation\n                const descent = 3 + Math.random() * 3; \n                currentHeight -= descent;\n            }\n            trackPoints.push(new THREE.Vector3(currentX, currentHeight, z));\n        }\n        \n        const newTrackCurve = new THREE.CatmullRomCurve3(trackPoints);\n        const trackGeometry = new THREE.TubeGeometry(newTrackCurve, segmentCount, trackWidth / 2, 32, false);\n        const newTrack = new THREE.Mesh(trackGeometry, trackMaterial);\n        newTrack.receiveShadow = true;\n        newTrack.castShadow = false;\n        \n        // Create starting ramp inside the tube - FIXED TO USE newTrackCurve\n        if (startRamp) {\n            scene.remove(startRamp);\n        }\n        \n        const startPoint = trackPoints[0];\n        const startTangent = new THREE.Vector3(0, 0, 1);\n        \n        // Create a shorter ramp inside the tube\n        const rampLength = 8;\n        const rampWidth = trackWidth * 0.8; // Slightly narrower than the tube\n        \n        const rampGeometry = new THREE.BoxGeometry(rampWidth, 0.5, rampLength);\n        const newRamp = new THREE.Mesh(rampGeometry, rampMaterial);\n        \n        // Position the ramp inside the tube at the start - FIXED TO USE newTrackCurve\n        const rampPosition = newTrackCurve.getPointAt(0.02); // Using newTrackCurve here\n        newRamp.position.copy(rampPosition);\n        newRamp.position.y += 0.5; // Slight elevation to make a ramp effect\n        \n        // Orient ramp to match tube direction - FIXED TO USE newTrackCurve\n        const rampLookAt = newTrackCurve.getPointAt(0.05); // Using newTrackCurve here\n        newRamp.lookAt(rampLookAt);\n        \n        newRamp.receiveShadow = true;\n        newRamp.castShadow = false;\n        newRamp.visible = false; // Make the ramp invisible\n        scene.add(newRamp);\n        startRamp = newRamp;\n        \n        return { track: newTrack, trackCurve: newTrackCurve };\n    }\n\n    // Marbles array to store shuffled positions\n    let marblePositions = [];\n\n    // Set up or reset race\n    function setupRace() {\n        if (track) {\n            scene.remove(track);\n            track.geometry.dispose();\n        }\n        const { track: newTrack, trackCurve: newTrackCurve } = generateTrack();\n        track = newTrack;\n        trackCurve = newTrackCurve;\n        scene.add(track);\n        \n        // Position start and finish lines\n        const startPoint = trackCurve.getPointAt(0);\n        const startTangent = trackCurve.getTangentAt(0);\n        startLine.position.copy(startPoint);\n        startLine.position.y += 0.1;\n        startLine.lookAt(startPoint.clone().add(startTangent));\n        \n        // Update finish line geometry based on track width\n        if (finishLine) {\n            scene.remove(finishLine);\n        }\n        const finishLineGeometry = new THREE.RingGeometry(trackWidth / 2 - 0.1, trackWidth / 2, 32);\n        const checkeredTexture = createCheckeredTexture();\n        const finishLineMaterial = new THREE.MeshBasicMaterial({ \n            map: checkeredTexture, \n            side: THREE.DoubleSide \n        });\n        finishLine = new THREE.Mesh(finishLineGeometry, finishLineMaterial);\n        scene.add(finishLine);\n        \n        const finishT = 0.99;\n        const finishPoint = trackCurve.getPointAt(finishT);\n        const finishTangent = trackCurve.getTangentAt(finishT);\n        finishLine.position.copy(finishPoint);\n        finishLine.position.y += 0.1;\n        finishLine.lookAt(finishPoint.clone().add(finishTangent));\n        \n        // Shuffle marble positions\n        marblePositions = [0, 1, 2, 3, 4, 5];\n        for (let i = marblePositions.length - 1; i > 0; i--) {\n            const j = Math.floor(Math.random() * (i + 1));\n            [marblePositions[i], marblePositions[j]] = [marblePositions[j], marblePositions[i]];\n        }\n        \n        // Reset marbles with new positions\n        marbles.forEac
213h((marble, index) => marble.resetPosition(index));\n        \n        // Clear the info panel at the start of a race\n        infoDiv.innerHTML = '';\n    }\n\n    function restartRace() {\n        setupRace();\n        \n        // Create a starting countdown\n        const countdownDiv = document.createElement('div');\n        countdownDiv.style.position = 'absolute';\n        countdownDiv.style.top = '50%';\n        countdownDiv.style.left = '50%';\n        countdownDiv.style.transform = 'translate(-50%, -50%)';\n        countdownDiv.style.fontSize = '100px';\n        countdownDiv.style.fontFamily = \"'Russo One', sans-serif\";\n        countdownDiv.style.color = 'white';\n        countdownDiv.style.textShadow = '0 0 10px rgba(0,0,0,0.5)';\n        countdownDiv.style.zIndex = '1001';\n        countdownDiv.textContent = '3';\n        \n        // Make countdown responsive for mobile\n        if (window.innerWidth < 480) {\n            countdownDiv.style.fontSize = '60px';\n        }\n        \n        document.body.appendChild(countdownDiv);\n        \n        let countdown = 3;\n        const countdownInterval = setInterval(() => {\n            countdown--;\n            if (countdown > 0) {\n                countdownDiv.textContent = countdown.toString();\n            } else if (countdown === 0) {\n                countdownDiv.textContent = 'GO!';\n                \n                // Start the race\n                startTime = Date.now();\n                startGateOpen = true;\n            } else {\n                clearInterval(countdownInterval);\n                document.body.removeChild(countdownDiv);\n            }\n        }, 1000);\n        \n        startGateOpen = false;\n        raceStarted = true;\n    }\n\n    // Shadow plane\n    const shadowGeometry = new THREE.PlaneGeometry(600, 600);\n    const shadowMaterial = new THREE.ShadowMaterial({ opacity: 0.3 });\n    const shadowPlane = new THREE.Mesh(shadowGeometry, shadowMaterial);\n    shadowPlane.rotation.x = -Math.PI / 2;\n    shadowPlane.position.y = -10;\n    shadowPlane.receiveShadow = true;\n    scene.add(shadowPlane);\n\n    // Marbles\n    const marbleRadius = 0.5;\n    const marbleColors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff];\n    const marbles = [];\n\n    class Marble {\n        constructor(color, index) {\n            const geometry = new THREE.SphereGeometry(marbleRadius, 32, 32);\n            const material = new THREE.MeshPhongMaterial({ color: color });\n            this.mesh = new THREE.Mesh(geometry, material);\n            this.mesh.castShadow = true;\n            this.mesh.receiveShadow = true;\n            this.velocity = new THREE.Vector3();\n            this.finished = false;\n            this.finishTime = 0;\n            scene.add(this.mesh);\n        }\n        \n        resetPosition(index) {\n            if (!trackCurve || !startRamp) return;\n            \n            // Get a position slightly into the tube\n            const trackStartPos = trackCurve.getPointAt(0.02);\n            const trackTangent = trackCurve.getTangentAt(0.02);\n            const trackNormal = new THREE.Vector3(0, 1, 0).cross(trackTangent).normalize();\n            \n            // Use shuffled positions for side-to-side arrangement\n            const position = marblePositions[index];\n            const offsetX = (position - 2.5) * (trackWidth / 7); // Side-to-side spacing based on track width\n            \n            // Calculate position within the tube\n            const marblePos = trackStartPos.clone().add(\n                trackNormal.clone().multiplyScalar(offsetX)\n            );\n            \n            // Ensure marbles are above the bottom of the tube\n            marblePos.y += marbleRadius + 0.1;\n            \n            // Set position and give a small initial push along the track\n            this.mesh.position.copy(marblePos);\n            \n            // Calculate initial velocity based on track direction\n            this.velocity.copy(trackTangent.clone().multiplyScalar(0.5));\n            this.velocity.y += 0.1; // Slight upward component to prevent sticking\n            \n            this.finished = false;\n            this.finishTime = 0;\n        }\n    }\n\n    // Start and finish lines\n    const lineGeometry = new THREE.RingGeometry(trackWidth / 2 - 0.1, trackWidth / 2, 32);\n    const startLine = new THREE.Mesh(lineGeometry, new THREE.MeshBasicMaterial({ color: 0x00ff00, side: THREE.DoubleSide }));\n    scene.add(startLine);\n    let finishLine; // Will be created in setupRace\n\n    // Initialize marbles\n    function initializeMarbles() {\n        marbleColors.forEac
213h((color, index) => {\n            marbles.push(new Marble(color, index));\n        });\n    }\n\n    // Physics parameters\n    const gravity = new THREE.Vector3(0, -14.71, 0);\n    const friction = 0.999;\n    let startTime = 0;\n    let raceStarted = false;\n    let startGateOpen = false;\n\n    // Camera setup\n    const cameraOffset = new THREE.Vector3(0, 5, -10);\n    let cameraTarget = new THREE.Vector3();\n    function setInitialCamera() {\n        if (trackCurve) {\n            const startPoint = trackCurve.getPointAt(0.03);\n            const trackTangent = trackCurve.getTangentAt(0.03);\n            \n            // Position camera slightly behind and above the start point\n            camera.position.copy(startPoint);\n            camera.position.y += 3;\n            camera.position.z -= 8;\n            \n            camera.lookAt(startPoint);\n        }\n    }\n\n    // Window resize\n    function onWindowResize() {\n        camera.aspect = window.innerWidth / window.innerHeight;\n        camera.updateProjectionMatrix();\n        renderer.setSize(window.innerWidth, window.innerHeight);\n        renderer.render(scene, camera);\n    }\n    window.addEventListener('resize', onWindowResize);\n\n    // Game variables\n    let playerBalance = 1000;\n    let selectedMarble = null;\n    let wagerAmount = 0;\n    let winCounts = [0, 0, 0, 0, 0, 0];\n    let totalRaces = 0;\n    let playerWins = 0;\n    const goalAmount = 10000;\n    const maxRaces = 20;\n\n    // Update start screen\n    function updateStartScreen() {\n        document.getElementById('balance').innerHTML = `Balance: <i class='bx bx-dollar-circle'></i>${playerBalance}`;\n        const container = document.getElementById('marblesContainer');\n        container.innerHTML = '';\n        \n        marbles.forEach((marble, index) => {\n            const marbleDiv = document.createElement('div');\n            marbleDiv.className = 'marble-option';\n            marbleDiv.style.backgroundColor = `#${marbleColors[index].toString(16).padStart(6, '0')}`;\n            \n            marbleDiv.addEventListener('click', () => {\n                selectedMarble = index;\n                const marbleDivs = container.querySelectorAll('.marble-option');\n                marbleDivs.forEach(div => div.classList.remove('selected'));\n                marbleDiv.classList.add('selected');\n            });\n            \n            // Only show win percentages if we've had races\n            if (totalRaces > 0) {\n                const marbleText = document.createElement('p');\n                const winPercent = (winCounts[index] / totalRaces * 100).toFixed(1);\n                marbleText.textContent = `${winPercent}%`;\n                marbleDiv.appendChild(marbleText);\n            }\n            \n            container.appendChild(marbleDiv);\n        });\n        \n        document.getElementById('wagerInput').max = playerBalance;\n    }\n\n    // Physics update\n    function updatePhysics(delta) {\n        if (!startGateOpen) return; // Don't update physics until starting gate opens\n        \n        marbles.forEach(marble => {\n            if (!marble.finished) {\n                marble.velocity.add(gravity.clone().multiplyScalar(delta));\n                marble.velocity.multiplyScalar(friction);\n                marble.mesh.position.add(marble.velocity.clone().multiplyScalar(delta));\n                \n                // Find closest point on track\n                if (trackCurve) {\n                    let t = 0;\n                    let minDistance = Infinity;\n                    const tempPoint = new THREE.Vector3();\n                    \n                    for (let i = 0; i <= 200; i++) {\n                        const testT = i / 200;\n                        trackCurve.getPointAt(testT, tempPoint);\n                        const distance = marble.mesh.position.distanceTo(tempPoint);\n                        if (distance < minDistance) {\n                            minDistance = distance;\n                            t = testT;\n                        }\n                    }\n                    \n                    // Track collision\n                    const trackPoint = trackCurve.getPointAt(t);\n                    const normal = marble.mesh.position.clone().sub(trackPoint);\n                    const distanceFromTrack = normal.length();\n                    \n                    if (distanceFromTrack > trackWidth / 2 - marbleRadius) {\n                        normal.normalize();\n                        const reflection = marble.velocity.clone().reflect(normal);\n                        marble.velocity.lerp(reflection, 0.8);\n                        marble.mesh.position.copy(trackPoint).add(normal.multiplyScalar(trackWidth / 2 - marbleRadius));\n                    }
213\n                    \n                    // Finish line detection\n                    const finishT = 0.99;\n                    const finishPoint = trackCurve.getPointAt(finishT);\n                    const finishNormal = trackCurve.getTangentAt(finishT).normalize();\n                    const finishPlane = new THREE.Plane().setFromNormalAndCoplanarPoint(finishNormal, finishPoint);\n                    const distanceToFinish = finishPlane.distanceToPoint(marble.mesh.position);\n                    \n                    if (distanceToFinish > 0 && !marble.finished) {\n                        marble.finished = true;\n                        marble.finishTime = (Date.now() - startTime) / 1000;\n                    }\n                }\n                \n                // Floor collision\n                if (marble.mesh.position.y < marbleRadius) {\n                    marble.mesh.position.y = marbleRadius;\n                    marble.velocity.y = Math.abs(marble.velocity.y) * 0.5; // Bounce\n                }\n            }\n        });\n        \n        // Marble collision detection\n        for (let i = 0; i < marbles.length; i++) {\n            for (let j = i + 1; j < marbles.length; j++) {\n                const m1 = marbles[i];\n                const m2 = marbles[j];\n                const distance = m1.mesh.position.distanceTo(m2.mesh.position);\n                \n                if (distance < marbleRadius * 2) {\n                    const normal = m1.mesh.position.clone().sub(m2.mesh.position).normalize();\n                    const relativeVelocity = m1.velocity.clone().sub(m2.velocity);\n                    const speed = relativeVelocity.dot(normal);\n                    \n                    if (speed < 0) {\n                        const impulse = normal.multiplyScalar(Math.min(speed * 1.2, 10));\n                        m1.velocity.sub(impulse);\n                        m2.velocity.add(impulse);\n                        \n                        const overlap = marbleRadius * 2 - distance;\n                        const correction = normal.clone().multiplyScalar(overlap / 2);\n                        m1.mesh.position.add(correction);\n                        m2.mesh.position.sub(correction);\n                        \n                        const maxSpeed = 30;\n                        if (m1.velocity.length() > maxSpeed) m1.velocity.normalize().multiplyScalar(maxSpeed);\n                        if (m2.velocity.length() > maxSpeed) m2.velocity.normalize().multiplyScalar(maxSpeed);\n                    }\n                }\n            }\n        }\n    }\n\n    // Camera update\n    function updateCamera() {\n        if (selectedMarble !== null && raceStarted) {\n            const followedMarble = marbles[selectedMarble];\n            const marblePos = followedMarble.mesh.position;\n            \n            if (trackCurve) {\n                let t = 0;\n                let minDistance = Infinity;\n                const tempPoint = new THREE.Vector3();\n                \n                for (let i = 0; i <= 200; i++) {\n                    const testT = i / 200;\n                    trackCurve.getPointAt(testT, tempPoint);\n                    const distance = marblePos.distanceTo(tempPoint);\n                    if (distance < minDistance) {\n                        minDistance = distance;\n                        t = testT;\n                    }\n                }\n                \n                const trackPoint = trackCurve.getPointAt(t);\n                const trackTangent = trackCurve.getTangentAt(t);\n                const cameraPosition = trackPoint.clone().add(trackTangent.clone().multiplyScalar(-5));\n                cameraPosition.y += 2;\n                \n                cameraTarget.lerp(marblePos, 0.1);\n                camera.position.lerp(cameraPosition, 0.008);\n                camera.lookAt(cameraTarget);\n            }\n        }\n    }\n\n    // UI update\n    function updateUI() {\n        // Only show time if the race has started AND the countdown is over (gate is open)\n        const elapsed 
213= (raceStarted && startGateOpen) ? (Date.now() - startTime) / 1000 : 0;\n        \n        const rankings = marbles\n            .map((m, i) => ({ \n                index: i, \n                z: m.mesh.position.z, \n                finished: m.finished, \n                time: m.finishTime || Infinity,\n                color: `#${marbleColors[i].toString(16).padStart(6, '0')}`\n            }))\n            .sort((a, b) => a.finished && b.finished ? a.time - b.time : a.finished ? -1 : b.finished ? 1 : b.z - a.z);\n        \n        // Only show the rankings UI if the race has actually started\n        if (raceStarted) {\n            let html = `<div style=\"font-family: 'Russo One', sans-serif; font-size: 12px;\">`;\n            \n            // Only show the time if the countdown is over\n            if (startGateOpen) {\n                html += `<div style=\"margin-bottom: 8px;\"><i class='bx bx-time'></i> Time: ${elapsed.toFixed(2)}s</div>`;\n            }\n            \n            html += `<div style=\"margin-top: 8px;\"><i class='bx bx-list-ol'></i> Rankings:</div>`;\n            \n            rankings.forEach((r, i) => {\n                // Highlight the player's selected marble\n                const isPlayerMarble = r.index === selectedMarble;\n                const style = isPlayerMarble ? 'font-weight: bold; background: rgba(255,255,255,0.2); border-radius: 4px; padding: 2px 4px;' : '';\n                \n                html += `<div style=\"display: flex; align-items: center; margin: 3px 0; ${style}\">\n                    <span style=\"font-weight: bold; margin-right: 5px;\">${i + 1}.</span>\n                    <span style=\"color:${r.color}; font-size: 12px; margin-right: 5px;\">\u25cf</span>\n                    <span style=\"font-size: 12px;\">Marble ${r.index + 1}</span>\n                    ${r.finished ? `<span style=\"margin-left: auto; font-size: 12px;\">${r.time.toFixed(2)}s</span>` : ''}\n                </div>`;\n            });\n            \n            html += `</div>`;\n            infoDiv.innerHTML = html;\n        } else {\n            infoDiv.innerHTML = ''; // Clear the info when not racing\n        }\n    }\n\n    // Show end screen and reset game state\n    function showEndScreen() {\n        const finishedMarbles = marbles.filter(m => m.finished);\n        finishedMarbles.sort((a, b) => a.finishTime - b.finishTime);\n        const finishingOrder = finishedMarbles.map(m => marbles.indexOf(m));\n        const playerPosition = finishingOrder.indexOf(selectedMarble) + 1;\n        \n        let payout = 0;\n        if (playerPosition === 1) {\n            payout = wagerAmount * 2;\n            playerWins++;\n        } else if (playerPosition === 2) {\n            payout = wagerAmount * 1.5;\n        } else if (playerPosition === 3) {\n            payout = wagerAmount;\n        }\n        \n        playerBalance += payout - wagerAmount;\n        const winnerIndex = finishingOrder[0];\n        winCounts[winnerIndex]++;\n        totalRaces++;\n        \n        const position = playerPosition === 1 ? '1st' : \n                         playerPosition === 2 ? '2nd' : \n                         playerPosition === 3 ? '3rd' : `${playerPosition}th`;\n                         \n        document.getElementById('resultText').innerHTML = `\n            <div style=\"display: flex; align-items: center; justify-content: center; margin-bottom: 15px;\">\n                <span style=\"color:${`#${marbleColors[selectedMarble].toString(16).padStart(6, '0')}`}; font-size: 24px; margin-right: 10px;\">\u25cf</span>\n                Your marble finished in ${position} place\n            </div>`;\n            \n        document.getElementById('payoutText').innerHTML = `Payout: <i class='bx bx-dollar-circle'></i>${payout}`;\n        document.getElementById('newBalanceText').innerHTML = `New Balance: <i class='bx bx-dollar-circle'></i>${playerBalance}`;\n        document.getElementById('racesRemainingText').innerHTML = `Races Remaining: ${maxRaces - totalRaces}`;\n        \n        // Check for game over conditions\n        if (playerBalance >= goalAmount || totalRaces >= maxRaces || playerBalance <= 0) {\n            setTimeout(() =>
213 {\n                showGameOverScreen();\n            }, 2000);\n        } else {\n            showScreen('endScreen');\n        }\n        \n        setupRace(); // Reset marbles and track\n        setInitialCamera(); // Reset camera\n    }\n    \n    // Show game over screen\n    function showGameOverScreen() {\n        const gameWon = playerBalance >= goalAmount;\n        const brokeOut = playerBalance <= 0;\n        const resultDiv = document.getElementById('gameResultText');\n        \n        if (gameWon) {\n            resultDiv.className = 'game-result win-result';\n            resultDiv.innerHTML = `<i class='bx bx-trophy'></i> Victory! You reached $${playerBalance} in ${totalRaces} races!`;\n        } else if (brokeOut) {\n            resultDiv.className = 'game-result lose-result';\n            resultDiv.innerHTML = `<i class='bx bx-money-withdraw'></i> Game Over! You're out of money!`;\n        } else {\n            resultDiv.className = 'game-result lose-result';\n            resultDiv.innerHTML = `<i class='bx bx-sad'></i> Game Over! You've used all ${maxRaces} races.`;\n        }\n        \n        document.getElementById('finalBalance').textContent = `$${playerBalance}`;\n        document.getElementById('finalRaces').textContent = totalRaces;\n        \n        showScreen('gameOverScreen');\n    }\n\n    // Start race function\n    function startRace() {\n        if (selectedMarble === null) {\n            alert('Please select a marble.');\n            return;\n        }\n        \n        const wagerInput = document.getElementById('wagerInput');\n        const wager = parseInt(wagerInput.value);\n        \n        if (isNaN(wager) || wager <= 0 || wager > playerBalance) {\n            alert('Invalid wager amount.');\n            return;\n        }\n        \n        wagerAmount = wager;\n        document.getElementById('wagerScreen').style.display = 'none';\n        restartRace();\n    }\n    \n    // Prevent scrolling and bouncing on mobile devices\n    document.addEventListener('touchmove', function(e) {\n        if (e.target.tagName !== 'INPUT') {\n            e.preventDefault();\n        }\n    }, { passive: false });\n    \n    // Animation loop\n    let lastTime = performance.now();\n    function animate() {\n        requestAnimationFrame(animate);\n        const currentTime = performance.now();\n        const delta = Math.min((currentTime - lastTime) / 1000, 0.1);\n        lastTime = currentTime;\n        \n        if (raceStarted) {\n            updatePhysics(delta);\n            updateCamera();\n            updateUI();\n            \n            if (marbles.every(m => m.finished)) {\n                raceStarted = false;\n                showEndScreen();\n            }\n        }\n        \n        renderer.render(scene, camera);\n    }\n\n    // Initial setup\n    initializeMarbles();\n    setupRace();\n    updateStartScreen();\n    setInitialCamera();\n    animate();\n    <\/script>\n</body>\n</html>"},{id:"bb2fd5ec-2503-440b-ab25-bb8a285e2d81",title:"YouTube Thumbnail Battle",slug:"youtube-thumbnail-battle",excerpt:"A game that tests your ability to identify high-performing YouTube thumbnails with view count guessing mechanics",content:'## YouTube Thumbnail Battle\n\nThis interactive game challenges players to develop an eye for viral content by guessing which YouTube thumbnail received more views. It uses the YouTube Data API to fetch real video data and helps content creators build intuition for effective thumbnail design.\n\n### Development Process\n\nThe game was developed using:\n1. **YouTube Data API Integration**: Pulls real YouTube videos and their view counts for comparison.\n2. **Responsive User Interface**: Clean, dark-themed design following my personal brand guidelines.\n3. **Custom Game Mechanics**: Includes streak tracking, time pressure, and instant feedback.\n\n### Key Features\n\n- Real YouTube thumbnails from long-form videos (no Shorts)\n- English-language video filtering\n- Countdown timer adding time pressure to decisions\n- Streak tracking system with personal bests\n- Fallback system with mock data if API limits are reached\n- Mobile-responsive design that works on all devices\n- Personalized feedback based on performance\n\n### Technical Details\n\nThe game leverages several web technologies:\n- YouTube Data API for video fetching\n- Custom CSS animations and transitions\n- LocalStorage for saving user statistics\n- ES6 JavaScript for game logic and API interaction\n\n### How to Play\n\n1. Click "Start Game" to begin\n2. Two YouTube thumbnails will appear - choose which one you think has more views\n3. Try to build the longest streak possible by guessing correctly\n4. Beat your high score and develop your content creator instincts!',category:"Code Projects",image_url:"https://64.media.tumblr.com/08e5fec9cc4c073e7598bad4ecf07959/996a325fcd52a59a-0a/s2048x3072/b214c7f61e6665fab8ae4d4c3a8e976821ce2aff.pnj",featured:!1,published:!0,read_time:5,views:0,likes:0,published_at:"2025-05-20T05:02:01.352122+00:00",created_at:"2025-05-20T05:02:01.352122+00:00",updated_at:"2025-05-20T05:02:01.352122+00:00",html_code:"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Thumbnail Battle</title>\n    <link href=\"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&display=swap\" rel=\"stylesheet\">\n    <style>\n        :root {\n            --bg-primary:   #0c0e10;\n            --bg-secondary: #14161a;\n            --bg-card:      #1a1d22;\n            --bg-accent:    #22262d;\n            --border-subtle:#1f2228;\n            --border-color: #2a2e38;\n            --border-hover: #383d4a;\n            --text-primary: #f0f2f5;\n            --text-secondary:#9aa0b0;\n            --text-muted:   #4a5060;\n            --green:  #22c55e;\n            --red:    #ef4444;\n            --yellow: #f59e0b;\n            --purple: #818cf8;\n        }\n\n        * { margin: 0; padding: 0; box-sizing: border-box; }\n\n        body {\n            font-family: 'Poppins', sans-serif;\n            background: var(--bg-primary);\n            color: var(--text-primary);\n            min-height: 100vh;\n            -webkit-font-smoothing: antialiased;\n        }\n\n        .container {\n            max-width: 860px;\n            margin: 0 auto;\n            padding: 20px 14px 48px;\n        }\n\n        .hidden { display: none !important; }\n\n        /* \u2500\u2500 LOGO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .logo {\n            text-align: center;\n            margin-bottom: 28px;\n        }\n\n        .logo h1 {\n            font-size: clamp(2rem, 6vw, 3rem);\n            font-weight: 900;\n            letter-spacing: -0.04em;\n            background: linear-gradient(135deg, #ffffff 20%, #6366f1 80%);\n            -webkit-background-clip: text;\n            -webkit-text-fill-color: transparent;\n            line-height: 1.1;\n        }\n\n        .logo p {\n            color: var(--text-muted);\n            font-size: 0.88rem;\n            margin-top: 6px;\n            font-weight: 500;\n        }\n\n        /* \u2500\u2500 SECTION LABEL \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .section-label {\n            font-size: 0.72rem;\n            font-weight: 700;\n            color: var(--text-muted);\n            text-transform: uppercase;\n            letter-spacing: 0.12em;\n            margin-bottom: 10px;\n        }\n\n        /* \u2500\u2500 NICHE GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .niche-grid {\n            display: grid;\n            grid-template-columns: repeat(3, 1fr);\n            gap: 8px;\n            margin-bottom: 20px;\n        }\n\n        .niche-card {\n            background: var(--bg-card);\n            border: 2px solid var(--border-color);\n            border-radius: 14px;\n            padding: 14px 8px 12px;\n            text-align: center;\n            cursor: pointer;\n            transition: all 0.18s ease;\n            user-select: none;\n        }\n\n        .niche-card:hover {\n            border-color: var(--border-hover);\n            background: var(--bg-accent);\n            transform: translateY(-2px);\n        }\n\n        .niche-card.selected {\n            border-color: #6366f1;\n            background: rgba(99, 102, 241, 0.1);\n        }\n\n        .niche-emoji {\n            font-size: 1.65rem;\n            display: block;\n            margin-bottom: 5px;\n            line-height: 1;\n        }\n\n        .niche-label {\n            font-size: 0.75rem;\n            font-weight: 700;\n            color: var(--text-secondary);\n        }\n\n        .niche-card.selected .niche-label { color: #a5b4fc; }\n\n        /* \u2500\u2500 BUTTONS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .btn {\n            width: 100%;\n            padding: 15px;\n            border: none;\n            border-radius: 12px;\n            cursor: pointer;\n            font-family: 'Poppins', sans-serif;\n            font-weight: 700;\n            font-size: 1rem;\n            letter-spacing: -0.01em;\n            transition: all 0.2s ease;\n            -webkit-tap-highlight-color: transparent;\n            touch-action: manipulation;\n        }\n\n        .btn-primary {\n            background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);\n            color: #fff;\n            box-shadow: 0 4px 20px rgba(99,102,241,0.3);\n        }\n\n        .btn-primary:hover {\n            background: linear-gradient(135deg, #818cf8 0%, #6366f1 100%);\n            transform: translateY(-2px);\n            box-shadow: 0 8px 28px rgba(99,102,241,0.45);\n        }\n\n        .btn-secondary {\n            background: var(--bg-accent);\n            color: var(--text-secondary);\n            margin-top: 10px;\n        }\n\n        .btn-secondary:hover {\n            background: var(--border-color);\n            transform: translateY(-1px);\n        }\n\n        .btn:disabled {\n            opacity: 0.45;
213\n            cursor: not-allowed;\n            transform: none !important;\n            box-shadow: none !important;\n        }\n\n        /* \u2500\u2500 STATS BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .stats-bar {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            background: var(--bg-card);\n            border: 1px solid var(--border-color);\n            border-radius: 14px;\n            padding: 12px 18px;\n            margin-bottom: 12px;\n        }\n\n        .stat-item { text-align: center; }\n\n        .stat-val {\n            font-size: 1.5rem;\n            font-weight: 800;\n            line-height: 1;\n            letter-spacing: -0.03em;\n        }\n\n        .stat-lbl {\n            font-size: 0.68rem;\n            font-weight: 600;\n            color: var(--text-muted);\n            text-transform: uppercase;\n            letter-spacing: 0.08em;\n            margin-top: 2px;\n        }\n\n        /* \u2500\u2500 META BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .meta-bar {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 8px;\n        }\n\n        .niche-pill {\n            display: inline-flex;\n            align-items: center;\n            gap: 5px;\n            background: rgba(99,102,241,0.12);\n            border: 1px solid rgba(99,102,241,0.25);\n            border-radius: 20px;\n            padding: 4px 12px;\n            font-size: 0.78rem;\n            font-weight: 700;\n            color: #a5b4fc;\n        }\n\n        .timer-text {\n            font-size: 0.8rem;\n            font-weight: 700;\n            color: var(--text-muted);\n            min-width: 28px;\n            text-align: right;\n        }\n\n        /* \u2500\u2500 TIMER BAR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .timer-track {\n            height: 3px;\n            background: var(--border-color);\n            border-radius: 2px;\n            margin-bottom: 14px;\n            overflow: hidden;\n        }\n\n        .timer-fill {\n            height: 100%;\n            width: 100%;\n            border-radius: 2px;\n            background: var(--green);\n            transition: background-color 0.4s;\n        }\n\n        /* \u2500\u2500 RESULT MESSAGE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .result-msg {\n            padding: 11px 16px;\n            border-radius: 10px;\n            font-weight: 700;\n            font-size: 0.9rem;\n            margin-bottom: 12px;\n            display: none;\n            animation: popIn 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);\n        }\n\n        @keyframes popIn {\n            from { opacity: 0; transform: scale(0.94) translateY(-4px); }\n            to   { opacity: 1; transform: scale(1) translateY(0); }\n        }\n\n        .result-correct {\n            background: rgba(34,197,94,0.12);\n            border: 1px solid rgba(34,197,94,0.35);\n            color: #4ade80;\n        }\n\n        .result-wrong {\n            background: rgba(239,68,68,0.12);\n            border: 1px solid rgba(239,68,68,0.35);\n            color: #f87171;\n        }\n\n        /* \u2500\u2500 BATTLE AREA \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .battle-row {\n            display: flex;\n            gap: 10px;\n            align-items: stretch;\n            margin-bottom: 12px;\n        }\n\n        .vs-col {\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            flex-shrink: 0;\n        }\n\n        .vs-circle {\n            width: 34px;\n            height: 34px;\n            background: var(--bg-accent);\n            border: 2px solid var(--border-color);\n            border-radius: 50%;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            font-size: 0.62rem;\n            font-weight: 800;\n            color: var(--text-muted);\n            flex-shrink: 0;\n        }\n\n        /* \u2500\u2500 THUMBNAIL CARD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .thumb-card {\n            flex: 1;\n            min-width: 0;\n            background: var(--bg-card);\n            border: 2px solid var(--border-color);\n            border-radius: 16px;\n            overflow: hidden;\n            cursor: pointer;\n            transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s, opacity 0.3s;\n            position: relative;\n        }\n\n        .thumb-card:hover:not(.revealed):not(.no-interact) {\n            border-color: #6366f1;\n            transform: translateY(-4px);\n            box-shadow: 0 10px 32px rgba(99,102,241,0.22);\n        }\n\n        .thumb-card img {\n            width: 100%;\n            aspect-ratio: 16/9;\n            object-fit: cover;\n            display: block;\n        }\n\n        .thumb-info {\n            padding: 10px 12px 12px;\n        }\n\n        .thumb-channel {\n            font-size: 0.68rem;\n            font-weight: 600;\n            color: var(--text-muted);\n            margin-bottom: 3px;\n            white-space: nowrap;\n            overflow: hidden;\n            text-overflow: ellipsis;\n        }\n\n        .thumb-title {\n            font-size: 0.8rem;\n            font-weight: 600;\n            line-height: 1.4;\n            display: -webkit-box;\n            -webkit-line-clamp: 2;\n            -webkit-box-orient: vertical;\n            overflow: hidden;\n            color: var(--text-primary);\n            min-height: 2.24em;\n        }\n\n        /* After reveal */\n        .thumb-card.winner { border-color: var(--green); }\n        .thumb-card.loser  { border-color: var(--red); opacity: 0.7; }\n\n        /* \u2500\u2500 REVEAL OVERLAY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .reveal-overlay {\n            position: absolute;\n            inset: 0;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            opacity: 0;\n            transition: opacity 0.3s ease;\n            pointer-events: none;\n            border-radius: 14px;\n        }\n\n        .thumb-card.revealed .reveal-overlay { opacity: 1; }\n        .thumb-card.winner   .reveal-overlay { background: rgba(34,197,94,0.52); }\n        .thumb-card.loser    .reveal-overlay { background: rgba(239,68,68,0.52); }\n\n        .overlay-icon  { font-size: 2.4rem; line-height: 1; margin-bottom: 4px; }\n        .overlay-views { font-size: 0.85rem; font-weight: 800; color: #fff; text-shadow: 0 1px 4px rgba(0,0,0,0.6); }\n\n        /* \u2500\u2500 COMPARISON BOX \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .compare-box {\n            background: var(--bg-card);\n            border: 1px solid var(--border-color);\n            border-radius: 14px;\n            padding: 14px 16px;\n            margin-bottom: 12px;\n            animation: popIn 0.3s ease;\n        }\n\n        .compare-header {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            margin-bottom: 10px;\n        }\n\n        .compare-title {\n            font-size: 0.7rem;\n            font-weight: 700;\n            color: var(--text-muted);\n            text-transform: uppercase;\n            letter-spacing: 0.1em;\n        }\n\n        .diff-pill {\n            padding: 3px 9px;\n            border-radius: 6px;\n            font-size: 0.7rem;\n            font-weight: 800;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n        }\n\n        .diff-easy   { background: rgba(34,197,94,0.12);  color: #4ade80; }\n        .diff-medium { background: rgba(245,158,11,0.12); color: #fbbf24; }\n        .diff-hard   { background: rgba(239,68,68,0.12);  color: #f87171; }\n\n        .bar-track {\n            height: 8px;\n            background: rgba(239,68,68,0.2);\n            border-radius: 4px;\n            overflow: hidden;\n            margin-bottom: 8px;\n        }\n\n        .bar-fill {\n            height: 100%;\n            background: linear-gradient(90deg, #22c55e, #16a34a);\n            border-radius: 4px;\n            transition: width 0.7s cubic-bezier(0.34, 1.1, 0.64, 1);\n            width: 0%;\n        }\n\n        .bar-labels {\n            display: flex;\n            justify-content: space-between;\n        }\n\n        .bar-val { font-size: 0.8rem; font-weight: 700; }\n        .bar-val.high { color: #4ade80; }\n        .bar-val.low  { color: #f87171; }\n\n        /* \u2500\u2500 LOADING \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .loading-state {\n            padding: 56px 0;\n            text-align: center;\n            color: var(--text-muted);\n        }\n\n        .spinner {\n            width: 38px;\n            height: 38px;\n            border: 3px solid var(--border-color);\n            border-top-color: #6366f1;\n            border-radius: 50%;\n            animation: spin 0.75s linear infinite;\n            margin: 0 auto 14px;\n        }\n\n        @keyframes spin { to { transform: rotate(360deg); } }\n        .loading-state p { font-size: 0.88rem; font-weight: 500; }\n\n        /* \u2500\u2500 NEXT BUTTON ANIMATION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        @keyframes slideUp {\n            from { opacity: 0; transform: translateY(10px); }\n            to   { opacity: 1; transform: translateY(0); }\n        }\n        .slide-up { animation: slideUp 0.3s ease forwards; }\n\n        /* \u2500\u2500 GAME OVER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        .gameover-box {\n            background: var(--bg-card);\n            border: 1px solid var(--border-color);\n            border-radius: 18px;\n            padding: 36px 24px 28px;\n            text-align: center;\n            animation: popIn 0.35s ease;\n        }\n\n        .go-emoji   { font-size: 3.5rem; line-height: 1; margin-bottom: 10px; }\n        .go-streak  { font-size: 4.5rem; font-weight: 900; letter-spacing: -0.05em; line-height: 1; margin-bottom: 4px; }\n        .go-sublbl  { font-size: 0.72rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 18px; }\n        .go-msg     { color: var(--text-secondary); font-size: 0.9rem; line-height: 1.65; margin-bottom: 20px; }\n\n        .go-stats {\n            display: flex;\n            justify-content: center;\n            gap: 28px;\n            margin-bottom: 24px;\n            padding: 14px;\n            background: var(--bg-accent);\n            border-radius: 10px;\n        }\n\n        .gs-item { text-align: center; }\n        .gs-val  { font-size: 1.4rem; font-weight: 800; letter-spacing: -0.03em; }\n        .gs-lbl  { font-size: 0.68rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.08em; }\n\n        /* \u2500\u2500 RESPONSIVE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n        @media (max-width: 440px) {\n            .niche-grid { gap: 6px; }\n            .niche-emoji { font-size: 1.4rem; }\n            .niche-label { font-size: 0.68rem; }\n            .stats-bar { padding: 10px 12px; }\n            .stat-val { font-size: 1.25rem; }\n            .go-streak { font-size: 3.5rem; }\n        }\n    </style>\n</head>\n<body>\n<div class=\"container\">\n\n    \x3c!-- \u2550\u2550\u2550 START SCREEN \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --\x3e\n    <div id=\"start-screen\">\n        <div class=\"logo\">\n            <h1>Thumbnail Battle</h1>\n            <p>Pick the thumbnail with more views \u2014 stay within one niche</p>\n        </div>\n        <div class=\"section-label\">Choose your niche</div>\n        <div class=\"niche-grid\" id=\"niche-grid\"></div>\n        <button class=\"btn btn-primary\" id=\"start-btn\">\u26a1 Start Battle</button>\n    </div>\n\n    \x3c!-- \u2550\u2550\u2550 GAME SCREEN \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --\x3e\n    <div id=\"game-screen\" class=\"hidden\">\n\n        <div class=\"stats-bar\">\n            <div class=\"stat-item\">\n                <div class=\"stat-val\" id=\"streak-val\">0</div>\n                <div class=\"stat-lbl\">Streak</div>\n            </div>\n            <div class=\"stat-item\">\n                <div class=\"stat-val\" id=\"best-val\">0</div>\n                <div class=\"stat-lbl\">Best</div>\n            </div>\n            <div class=\"stat-item\">\n                <div class=\"stat-val\" id=\"round-val\">1</div>\n                <div class=\"stat-lbl\">Round</div>\n            </div>\n            <div class=\"stat-item\">\n                <div class=\"stat-val\" id=\"correct-val\">0</div>\n                <div class=\"stat-lbl\">Correct</div>\n            </div>\n        </div>\n\n        <div class=\"meta-bar\">\n            <div class=\"niche-pill\" id=\"niche-pill\">\ud83c\udfb2 Random</div>\n            <div class=\"timer-text\" id=\"timer-text\">15s</div>\n        </div>\n        <div class=\"timer-track\">\n            <div class=\"timer-fill\" id=\"timer-fill\"></div>\n        </div>\n\n        <div id=\"loading-state\" class=\"loading-state\">\n            <div class=\"spinner\"></div>\n            <p id=\"loading-text\">Loading videos\u2026</p>\n        </div>\n\n        <div id=\"battle-content\" class=\"hidden\">\n            <div class=\"result-msg\" id=\"result-msg\"></div>\n\n            <div class=\"battle-row\">\n                <div class=\"thumb-card\" id=\"card-0\">\n                    <img id=\"img-0\" src=\"\" alt=\"Thumbnail A\">\n                    <div class=\"thumb-info\">\n                        <div class=\"thumb-channel\" id=\"channel-0\"></div>\n                        <div class=\"thumb-title\"   id=\"title-0\"></div>\n                    </div>\n                    <div class=\"reveal-overlay\">\n                        <div class=\"overlay-icon\"  id=\"icon-0\"></div>\n                        <div class=\"overlay-views\" id=\"views-0\"></div>\n                    </div>\n                </div>\n\n                <div class=\"vs-col\">\n                    <div class=\"vs-circle\">VS</div>\n                </
213div>\n\n                <div class=\"thumb-card\" id=\"card-1\">\n                    <img id=\"img-1\" src=\"\" alt=\"Thumbnail B\">\n                    <div class=\"thumb-info\">\n                        <div class=\"thumb-channel\" id=\"channel-1\"></div>\n                        <div class=\"thumb-title\"   id=\"title-1\"></div>\n                    </div>\n                    <div class=\"reveal-overlay\">\n                        <div class=\"overlay-icon\"  id=\"icon-1\"></div>\n                        <div class=\"overlay-views\" id=\"views-1\"></div>\n                    </div>\n                </div>\n            </div>\n\n            <div class=\"compare-box hidden\" id=\"compare-box\">\n                <div class=\"compare-header\">\n                    <span class=\"compare-title\">View Count Breakdown</span>\n                    <span class=\"diff-pill\" id=\"diff-pill\"></span>\n                </div>\n                <div class=\"bar-track\">\n                    <div class=\"bar-fill\" id=\"bar-fill\"></div>\n                </div>\n                <div class=\"bar-labels\">\n                    <span class=\"bar-val\" id=\"bar-left\"></span>\n                    <span class=\"bar-val\" id=\"bar-right\"></span>\n                </div>\n            </div>\n\n            <button class=\"btn btn-primary hidden\" id=\"next-btn\">Next Round \u2192</button>\n        </div>\n    </div>\n\n    \x3c!-- \u2550\u2550\u2550 GAME OVER SCREEN \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 --\x3e\n    <div id=\"gameover-screen\" class=\"hidden\">\n        <div class=\"gameover-box\">\n            <div class=\"go-emoji\"  id=\"go-emoji\">\ud83d\udc80</div>\n            <div class=\"go-streak\" id=\"go-streak\">0</div>\n            <div class=\"go-sublbl\">Final Streak</div>\n            <div class=\"go-msg\"    id=\"go-msg\"></div>\n            <div class=\"go-stats\">\n                <div class=\"gs-item\">\n                    <div class=\"gs-val\" id=\"go-best\">0</div>\n                    <div class=\"gs-lbl\">All-Time Best</div>\n                </div>\n                <div class=\"gs-item\">\n                    <div class=\"gs-val\" id=\"go-rounds\">0</div>\n                    <div class=\"gs-lbl\">Rounds</div>\n                </div>\n                <div class=\"gs-item\">\n                    <div class=\"gs-val\" id=\"go-correct\">0</div>\n                    <div class=\"gs-lbl\">Correct</div>\n                </div>\n            </div>\n            <button class=\"btn btn-primary\"   id=\"play-again-btn\">Play Again</button>\n            <button class=\"btn btn-secondary\" id=\"change-niche-btn\">Change Niche</button>\n        </div>\n    </div>\n\n</div>\n<script>\n// \u2500\u2500\u2500 CONFIG \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst API_KEY = 'AIzaSyB6_g7WVkxbAURYMwxAGvs5eupZ6iF7jGc';\nconst TIMER_DURATION = 15;\n\nconst NICHES = [\n    { id:'gaming',  emoji:'\ud83c\udfae', label:'Gaming',   terms:['gaming highlights 2024','best gaming moments','minecraft gameplay let\\'s play','gaming setup tour','fps montage 2024','game review'] },\n    { id:'tech',    emoji:'\ud83d\udcbb', label:'Tech',     terms:['tech review 2024','best smartphone 2024','laptop review','AI tools 2024','gadget unboxing','phone comparison review'] },\n    { id:'cooking', emoji:'\ud83c\udf73', label:'Cooking',  terms:['easy recipe tutorial','cooking challenge','what I eat in a week','food hack recipe','baking from scratch','quick dinner recipe'] },\n    { id:'fitness', emoji:'\ud83d\udcaa', label:'Fitness',  terms:['home workout routine','gym transformation','weight loss journey','full body workout','fitness tips beginners','get fit challenge'] },\n    { id:'music',   emoji:'\ud83c\udfb5', label:'Music',    terms:['music reaction video','song cover 2024','singing tutorial','music producer beats','live performance 2024','new music react'] },\n    { id:'travel',  emoji:'\u2708\ufe0f', label:'Travel',   terms:['travel vlog 2024','solo travel guide','budget travel tips','travel destinations 2024','backpacking abroad','travel day in my life'] },\n    { id:'money',   emoji:'\ud83d\udcb0', label:'Money',    terms:['passive income 2024','investing for beginners','how to make money online','side hustle ideas','financial freedom tips','stock market beginners'] },\n    { id:'vlogs',   emoji:'\ud83d\udcf9', label:'Vlogs',    terms:['day in my life vlog','weekly vlog 2024','moving vlog','college vlog','productive day routine','NYC vlog'] },\n    { id:'random',  emoji:'\ud83c\udfb2', label:'Random',   terms:null, isRandom:true },\n];\n\n// \u2500\u2500\u2500 STATE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nlet selectedNiche  = NICHES.find(n => n.isRandom);\nlet currentStreak  = 0;\nlet bestStreak     = 0;\nlet roundNum       = 1;\nlet totalCorrect   = 0;\nlet currentVideos  = [];\nlet hasGuessed     = false;\nlet timerInterval  = null;\nlet timerStart     = null;\nlet lastEndedStreak = 0;\n\n// \u2500\u2500\u2500 HELPERS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst $ = id => document.getElementById(id);\n\nfunction fmtViews(n) {\n    if (n >= 1e9) return (n/1e9).toFixed(1).replace(/\\.0$/,'')+'B';\n    if (n >= 1e6) return (n/1e6).toFixed(1).replace(/\\.0$/,'')+'M';\n    if (n >= 1e3) return (n/1e3).toFixed(1).replace(/\\.0$/,'')+'K';\n    return n.toString();\n}\n\nfunction randFrom(arr) { return arr[Math.floor(Math.random()*arr.length)]; }\n\nfunction shuffle(arr) {\n    for (let i=arr.length-1;i>0;i--){\n        const j=Math.floor(Math.random()*(i+1));\n        [arr[i],arr[j]]=[arr[j],arr[i]];\n    }\n    return arr;\n}\n\n// \u2500\u2500\u2500 PERSISTENCE \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction loadStats() {\n    const s = JSON.parse(localStorage.getItem('thumbBattle_v3')||'{}');\n    bestStreak   = s.bestStreak   || 0;\n    totalCorrect = s.totalCorrect || 0;\n}\n\nfunction saveStats() {\n    localStorage.setItem('thumbBattle_v3', JSON.stringify({bestStreak, totalCorrect}));\n}\n\nfunction updateUI() {\n    let sv = String(currentStreak);\n    if      (currentStreak >= 10) sv = currentStreak+' \ud83d\udd25\ud83d\udd25';\n    else if (currentStreak >= 5)  sv = currentStreak+' \ud83d\udd25';\n    else if (currentStreak >= 3)  sv = currentStreak+' \u26a1';\n    $('streak-val').textContent  = sv;\n    $('best-val').textContent    = bestStreak;\n    $('round-val').textContent   = roundNum;\n    $('correct-val').textContent = totalCorrect;\n}\n\n// \u2500\u2500\u2500 NICHE GRID \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction buildGrid() {\n    const grid = $('niche
213-grid');\n    NICHES.forEach(niche => {\n        const card = document.createElement('div');\n        card.className = 'niche-card'+(niche.isRandom?' selected':'');\n        card.innerHTML = `<span class=\"niche-emoji\">${niche.emoji}</span><span class=\"niche-label\">${niche.label}</span>`;\n        card.addEventListener('click', () => {\n            document.querySelectorAll('.niche-card').forEach(c=>c.classList.remove('selected'));\n            card.classList.add('selected');\n            selectedNiche = niche;\n        });\n        grid.appendChild(card);\n    });\n}\n\n// \u2500\u2500\u2500 ROUND FLOW \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction activeNiche() {\n    if (selectedNiche.isRandom) return randFrom(NICHES.filter(n=>!n.isRandom));\n    return selectedNiche;\n}\n\nasync function loadRound() {\n    stopTimer();\n    hasGuessed = false;\n    $('loading-state').classList.remove('hidden');\n    $('battle-content').classList.add('hidden');\n    $('result-msg').style.display = 'none';\n    $('compare-box').classList.add('hidden');\n    $('next-btn').classList.add('hidden');\n    $('next-btn').disabled = true;\n\n    const niche = activeNiche();\n    $('niche-pill').textContent  = niche.emoji+' '+niche.label;\n    $('loading-text').textContent = 'Finding '+niche.label+' videos\u2026';\n    updateUI();\n\n    try {\n        currentVideos = await fetchVideos(niche);\n        showVideos();\n    } catch(e) {\n        console.warn('API error, using fallback:', e.message);\n        useFallback();\n    }\n}\n\n// \u2500\u2500\u2500 YOUTUBE API (SAME NICHE) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nasync function fetchVideos(niche) {\n    const term = randFrom(niche.terms);\n\n    // Search\n    const sr = await fetch(`https://www.googleapis.com/youtube/v3/search?part=snippet&maxResults=50&q=${encodeURIComponent(term)}&type=video&videoDuration=medium&relevanceLanguage=en&key=${API_KEY}`);\n    const sd = await sr.json();\n    if (sd.error) throw new Error(sd.error.message);\n    if (!sd.items?.length) throw new Error('No search results');\n\n    const ids = sd.items.map(i=>i.id.videoId).join(',');\n\n    // Stats\n    const vr = await fetch(`https://www.googleapis.com/youtube/v3/videos?part=snippet,statistics&id=${ids}&key=${API_KEY}`);\n    const vd = await vr.json();\n    if (vd.error) throw new Error(vd.error.message);\n\n    // Filter: >10K views, not a short, has thumbnail\n    const valid = (vd.items||[]).filter(v => {\n        if (!v.statistics?.viewCount) return false;\n        const views = parseInt(v.statistics.viewCount);\n        if (views < 10000) return false;\n        const title = (v.snippet?.title||'').toLowerCase();\n        if (/#shorts|#short|\\bshorts\\b/.test(title)) return false;\n        if (!v.snippet?.thumbnails?.high?.url) return false;\n        return true;\n    });\n\n    if (valid.length < 2) throw new Error('Not enough valid videos');\n    shuffle(valid);\n\n    // Find a good pair: ratio 1.5x\u201340x (clear winner, not absurd gap)\n    for (let i=0; i<Math.min(valid.length-1, 18); i++) {\n        for (let j=i+1; j<Math.min(valid.length, 22); j++) {\n            const a = parseInt(valid[i].statistics.viewCount);\n            const b = parseInt(valid[j].statistics.viewCount);\n            const ratio = Math.max(a,b)/Math.min(a,b);\n            if (ratio >= 1.5 && ratio <= 40) return [valid[i], valid[j]];\n        }\n    }\n\n    return [valid[0], valid[1]];\n}\n\n// \u2500\u2500\u2500 DISPLAY \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction showVideos() {\n    const [v0, v1] = currentVideos;
213\n    $('img-0').src       = v0.snippet.thumbnails.high.url;\n    $('img-1').src       = v1.snippet.thumbnails.high.url;\n    $('channel-0').textContent = v0.snippet.channelTitle;\n    $('channel-1').textContent = v1.snippet.channelTitle;\n    $('title-0').textContent   = v0.snippet.title;\n    $('title-1').textContent   = v1.snippet.title;\n\n    ['card-0','card-1'].forEach(id => $(id).className='thumb-card');\n    ['icon-0','icon-1','views-0','views-1'].forEach(id => $(id).textContent='');\n\n    $('loading-state').classList.add('hidden');\n    $('battle-content').classList.remove('hidden');\n    startTimer();\n}\n\n// \u2500\u2500\u2500 GUESS HANDLER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction handleGuess(idx) {\n    if (hasGuessed) return;\n    hasGuessed = true;\n    stopTimer();\n\n    const v0 = parseInt(currentVideos[0].statistics.viewCount);\n    const v1 = parseInt(currentVideos[1].statistics.viewCount);\n    const win = v0 >= v1 ? 0 : 1;\n    const ok  = idx === win;\n\n    // Reveal\n    $('card-0').classList.add('revealed', win===0?'winner':'loser');\n    $('card-1').classList.add('revealed', win===1?'winner':'loser');\n    $('icon-0').textContent  = win===0 ? '\ud83d\udc51' : '\u2715';\n    $('icon-1').textContent  = win===1 ? '\ud83d\udc51' : '\u2715';\n    $('views-0').textContent = fmtViews(v0)+' views';\n    $('views-1').textContent = fmtViews(v1)+' views';\n\n    showComparison(v0, v1);\n\n    if (ok) {\n        currentStreak++;\n        totalCorrect++;\n        if (currentStreak > bestStreak) { bestStreak = currentStreak; }\n        saveStats();\n\n        const msg = $('result-msg');\n        msg.className   = 'result-msg result-correct';\n        msg.textContent = successMsg(currentStreak);\n        msg.style.display = 'block';\n\n        const btn = $('next-btn');\n        btn.classList.remove('hidden');\n        btn.classList.add('slide-up');\n        btn.disabled = false;\n    } else {\n        lastEndedStreak = currentStreak;\n        currentStreak   = 0;\n        saveStats();\n\n        const msg = $('result-msg');\n        msg.className   = 'result-msg result-wrong';\n        msg.textContent = lastEndedStreak > 0\n            ? `\u2715 Wrong! Your streak of ${lastEndedStreak} has ended.`\n            : '\u2715 Wrong \u2014 no streak this time. Try again!';\n        msg.style.display = 'block';\n\n        $('card-0').classList.add('no-interact');\n        $('card-1').classList.add('no-interact');
213\n        setTimeout(showGameOver, 1900);\n    }\n\n    updateUI();\n}\n\nfunction showComparison(v0, v1) {\n    const pct0  = (v0/(v0+v1))*100;\n    const ratio = Math.max(v0,v1)/Math.min(v0,v1);\n\n    let diffText, diffCls;\n    if (ratio >= 8)   { diffText='\u26a1 Easy';   diffCls='diff-easy'; }\n    else if (ratio>=2){ diffText='\ud83c\udfaf Medium'; diffCls='diff-medium'; }\n    else              { diffText='\ud83d\udd25 Tough';  diffCls='diff-hard'; }\n\n    $('diff-pill').textContent = diffText;\n    $('diff-pill').className   = 'diff-pill '+diffCls;\n\n    const high0 = v0>=v1;\n    $('bar-left').textContent  = fmtViews(v0)+' views';\n    $('bar-left').className    = 'bar-val '+(high0?'high':'low');\n    $('bar-right').textContent = fmtViews(v1)+' views';\n    $('bar-right').className   = 'bar-val '+(!high0?'high':'low');\n\n    const fill = $('bar-fill');\n    fill.style.width = '0%';\n    setTimeout(() => { fill.style.width = pct0+'%'; }, 60);\n\n    $('compare-box').classList.remove('hidden');\n}\n\n// \u2500\u2500\u2500 MESSAGES \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction successMsg(s) {\n    if (s>=10) return `\ud83d\udd25\ud83d\udd25 UNSTOPPABLE! ${s} in a row!`;\n    if (s>=7)  return `\ud83d\udd25 On a tear! ${s} straight!`;\n    if (s>=5)  return `\u26a1 Hot streak \u2014 ${s} and counting!`;\n    if (s>=3)  return `\u26a1 ${s} in a row \u2014 you're getting it!`;\n    return randFrom(['\u2713 Correct! Nice eye.','\u2713 Got it! Keep going.','\u2713 That\\'s the one!','\u2713 Good pick!']);\n}\n\n// \u2500\u2500\u2500 GAME OVER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction showGameOver() {\n    $('game-screen').classList.add('hidden');\n\n    const ls = lastEndedStreak;\n    let emoji = '\ud83d\udc80';\n    if      (ls>=15) emoji='\ud83c\udfc6';\n    else if (ls>=10) emoji='\ud83d\udd25';\n    else if (ls>=5)  emoji='\u26a1';\n    else if (ls>=3)  emoji='\ud83d\udc4d';\n\n    $('go-emoji').textContent   = emoji;\n    $('go-streak').textContent  = String(ls);\n    $('go-best').textContent    = bestStreak;\n    $('go-rounds').textContent  = roundNum-1;\n    $('go-correct').textContent = totalCorrect;\n\n    let msg;\n    if      (ls===0)  msg='Every pro started here. Keep sharpening that eye!';\n    else if (ls<4)    msg='Decent start! Your thumbnail instincts are developing.';\n    else if (ls<8)    msg='Solid run! You\\'ve got real feel for viral content.';\n    else if (ls<15)   msg='Impressive! You think like a content creator.';\n    else              msg='\ud83c\udfc6 Legendary instincts \u2014 you belong in a creator studio.';\n\n    $('go-msg').textContent = msg;\n    $('gameover-screen').classList.remove('hidden');\n}\n\n// \u2500\u2500\u2500 TIMER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nfunction startTimer() {\n    const fill = $('timer-fill');\n    fill.style.width      = '100%';\n    fill.style.background = '#22c55e';\n    $('timer-text').textContent = TIMER_DURATION+'s';\n    timerStart = Date.now();\n\n    timerInterval = setInterval(() => {\n        const elapsed   = (Date.now()-timerStart)/1000;\n        const remaining = Math.max(0, TIMER_DURATION-elapsed);\n        const pct       = (remaining/TIMER_DURATION)*100;\n\n        fill.style.width = pct+'%';\n        $('timer-text').textContent = Math.ceil(remaining)+'s';\n\n        if      (pct<25) fill.style.background='#ef4444';\n        else if (pct<55) fill.style.background='#f59e0b';\n        else             fill.style.background='#22c55e';\n\n        if (remaining<=0) timeUp();\n    }, 50);\n}\n\nfunction stopTimer() { clearInterval(timerInterval); timerInterval=null; }\n\nfunction timeUp() {\n    stopTimer();\n    if (!hasGuessed) {\n        hasGuessed      = true;\n        lastEndedStreak = currentStreak;\n        currentStreak   = 0;\n        saveStats();\n        $('game-screen').classList.add('hidden');\n        $('go-emoji').textContent   = '\u23f0';\n        $('go-streak').textContent  = String(lastEndedStreak);\n        $('go-best').textContent    = bestStreak;\n        $('go-rounds').textContent  = roundNum-1;\n        $('go-correct').textContent = totalCorrect;\n        $('go-msg').textContent     = 'Time\\'s up! Trust your instincts faster next time.';\n        $('gameover-screen').classList.remove('hidden');\n    }\n}\n\n// \u2500\u2500\u2500 FALLBACK \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nconst FALLBACK = [\n    {id:'f1',snippet:{title:'I Built a $500 Gaming PC \u2014 Was It Worth It?',    channelTitle:'TechBuilds',   thumbnails:{high:{url:'https://i.ytimg.com/vi/jptY2DC3DV0/hqdefault.jpg'}}},statistics:{viewCount:'3500000'}},\n    {id:'f2',snippet:{title:'10 Minecraft Tips Every Player Should Know',      channelTitle:'CraftMaster',  thumbnails:{high:{url:'https://i.ytimg.com/vi/V8lbiiTF2P0/hqdefault.jpg'}}},statistics:{viewCount:'920000'}},\n    {id:'f3',snippet:{title:'I Ate Only Street Food for 30 Days',              channelTitle:'FoodDares',    thumbnails:{high:{url:'https://i.ytimg.com/vi/KMY7MzLG5k8/hqdefault.jpg'}}},statistics:{viewCount:'5680000'}},\n    {id:'f4',snippet:{title:'5 Passive Income Streams That Actually Work',     channelTitle:'MoneyMoves',   thumbnails:{high:{url:'https://i.ytimg.com/vi/t_ispmWmdjY/hqdefault.jpg'}}},statistics:{viewCount:'1890000'}},\n    {id:'f5',snippet:{title:'30-Min Full Body Workout (Zero Equipment)',        channelTitle:'FitWithMike',  thumbnails:{high:{url:'https://i.ytimg.com/vi/unO7pFz85MI/hqdefault.jpg'}}},statistics:{viewCount:'2340000'}},\n    {id:'f6',snippet:{title:'Best Budget Smartphones of 2024 \u2014 Ranked',        channelTitle:'TechTalk',     thumbnails:{high:{url:'https://i.ytimg.com/vi/WFiW_tvE6iE/hqdefault.jpg'}}},statistics:{viewCount:'4250000'}},\n    {id:'f7',snippet:{title:'Solo Travel Europe on $50 a Day',                 channelTitle:'Wanderlust',   thumbnails:{high:{url:'https://i.ytimg.com/vi/V4akMaeZ0-k/hqdefault.jpg'}}},statistics:{viewCount:'7820000'}},\n    {id:'f8',snippet:{title:'I Learned Guitar in 30 Days \u2014 Here\\'s What Happened',channelTitle:'MusicJourney',thumbnails:{high:{url:'https://i.ytimg.com/vi/DhBPFr3RRso/hqdefault.jpg'}}},statistics:{viewCount:'1730000'}},\n];\n\nfunction useFallback() {\n    const pool = shuffle([...FALLBACK]);\n    currentVideos = [pool[0], pool[1]];\n    showVideos();\n}
213\n\n// \u2500\u2500\u2500 EVENTS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n$('start-btn').addEventListener('click', () => {\n    $('start-screen').classList.add('hidden');\n    $('game-screen').classList.remove('hidden');\n    currentStreak = 0; roundNum = 1; totalCorrect = 0; lastEndedStreak = 0;\n    updateUI();\n    loadRound();\n});\n\n$('next-btn').addEventListener('click', () => {\n    $('next-btn').disabled = true;\n    roundNum++;\n    loadRound();\n});\n\n$('play-again-btn').addEventListener('click', () => {\n    $('gameover-screen').classList.add('hidden');\n    $('game-screen').classList.remove('hidden');\n    currentStreak = 0; roundNum = 1; totalCorrect = 0; lastEndedStreak = 0;\n    updateUI();\n    loadRound();\n});\n\n$('change-niche-btn').addEventListener('click', () => {\n    $('gameover-screen').classList.add('hidden');\n    $('start-screen').classList.remove('hidden');\n});\n\n$('card-0').addEventListener('click', () => handleGuess(0));\n$('card-1').addEventListener('click', () => handleGuess(1));\n\n// \u2500\u2500\u2500 INIT \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nbuildGrid();\nloadStats();\n<\/script>\n</body>\n</html>\n"},{id:"b70f6021-c9c9-4313-a7e2-386071a9e3ca",title:"Enhanced Flappy Bird",slug:"flappy-bird",excerpt:"A responsive HTML5 Canvas implementation of Flappy Bird with improved gameplay mechanics and visual effects",content:"## Enhanced Flappy Bird\n\nThis modern implementation of the classic Flappy Bird game is built entirely with HTML5 Canvas and vanilla JavaScript. It features responsive design, smooth animations, and carefully tuned gameplay mechanics for an engaging yet accessible experience.\n\n### Development Process\n\nThe game was developed with a focus on:\n1. **Responsive Design**: Adapts to any screen size while maintaining the correct aspect ratio\n2. **Gameplay Tuning**: Carefully balanced difficulty with forgiving hitboxes and gentler physics\n3. **Visual Polish**: Cloud backgrounds, particle effects, and smooth animations enhance the visual experience\n\n### Key Features\n\n- Responsive canvas that works on both mobile and desktop\n- Forgiving hitboxes (reduced by 20%) for less frustrating gameplay\n- Dynamic cloud backgrounds with parallax scrolling effect\n- Visual jump indicator to help with timing\n- Bird rotation based on velocity for smooth animations\n- Web Audio API for procedurally generated sound effects\n- Local storage for saving high scores\n- Mute/unmute toggle for sound effects\n- Touch and keyboard controls\n\n### Technical Details\n\nThe game uses several modern web technologies:\n- HTML5 Canvas for rendering\n- Vanilla JavaScript for game logic\n- Web Audio API for dynamic sound generation\n- LocalStorage API for persistent high scores\n- CSS3 for styling and responsive design\n\n### How to Play\n\n1. Tap the screen or press the SPACE key to make the bird flap its wings\n2. Navigate through pipes without hitting them\n3. Each pipe you pass earns one point\n4. Try to beat your high score!",category:"Code Projects",image_url:"https://64.media.tumblr.com/e708c0073d4a4243e6da8caf4d17971c/19f7abb1e1bdb515-70/s2048x3072/f68116010dbb0b5837f4878fa5376cc8a26e15c8.pnj",featured:!0,published:!0,read_time:5,views:0,likes:0,published_at:"2025-05-20T04:52:17.853803+00:00",created_at:"2025-05-20T04:52:17.853803+00:00",updated_at:"2025-05-20T04:52:17.853803+00:00",html_code:'<!DOCTYPE html>\n<html lang="en">\n<head>\n  <meta charset="UTF-8" />\n  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n  <title>Enhanced Flappy Bird</title>\n  <style>\n    /* Improved styling */\n    * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n    body {\n      background: #70c5ce;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      min-height: 100vh;\n      font-family: \'Arial Rounded MT Bold\', \'Arial\', sans-serif;\n      overflow: hidden;\n      touch-action: manipulation;\n    }\n    #gameContainer {\n      position: relative;\n      width: 100%;\n      max-width: 600px;\n      margin: 0 auto;\n    }\n    canvas {\n      display: block;\n      width: 100%;\n      height: auto;\n      border: 4px solid #333;\n      border-radius: 10px;\n      background: #70c5ce;\n      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);\n    }\n    #muteButton {\n      position: absolute;\n      top: 15px;\n      right: 15px;\n      background: rgba(255, 255, 255, 0.7);\n      border: none;\n      border-radius: 50%;\n      width: 40px;\n      height: 40px;\n      font-size: 20px;\n      cursor: pointer;\n      z-index: 10;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n    }\n    #muteButton:focus {\n      outline: none;\n    }\n    .instruction {\n      position: absolute;\n      bottom: 15px;\n      width: 100%;\n      text-align: center;\n      color: white;\n      background: rgba(0, 0, 0, 0.3);\n      padding: 10px;\n      border-radius: 10px;\n      font-size: 16px;\n    }\n  </style>\n</head>\n<body>\n  <div id="gameContainer">
213\n    <canvas id="gameCanvas" width="480" height="640"></canvas>\n    <button id="muteButton">\ud83d\udd0a</button>\n    <div class="instruction" id="instructionText">Tap or press SPACE to flap</div>\n  </div>\n\n  <script>\n    // Get canvas and context\n    const canvas = document.getElementById(\'gameCanvas\');\n    const ctx = canvas.getContext(\'2d\');\n    const muteButton = document.getElementById(\'muteButton\');\n    const instructionText = document.getElementById(\'instructionText\');\n\n    // Make canvas responsive\n    function resizeCanvas() {\n      const container = document.getElementById(\'gameContainer\');\n      const containerWidth = container.clientWidth;\n      // Maintain aspect ratio\n      canvas.style.width = containerWidth + \'px\';\n      canvas.style.height = (containerWidth * (canvas.height / canvas.width)) + \'px\';\n    }\n    \n    // Call resize on load and when window size changes\n    window.addEventListener(\'load\', resizeCanvas);\n    window.addEventListener(\'resize\', resizeCanvas);\n\n    // ----- Game States -----\n    let gameState = "menu";\n    let muted = false;\n\n    // ----- Game Constants ----- (Tweaked for much easier gameplay)\n    const GRAVITY = 0.25;         // Drastically reduced gravity (was 0.5, then 0.35)\n    const JUMP_STRENGTH = -6;     // Even gentler jump (was -8, then -7)\n    const PIPE_WIDTH = 60;
213        // Wider pipes\n    const PIPE_GAP = 220;         // Much larger gap between pipes (was 120, then 170)\n    const PIPE_SPEED = 1.5;       // Slower pipes (was 2, then 1.8)\n    const PIPE_SPAWN_INTERVAL = 150; // Greatly increased spawn interval (was 90, then 110)\n\n    // ----- Game Variables -----\n    let bird = {\n      x: 80,\n      y: canvas.height / 2,\n      width: 40,\n      height: 40,\n      velocity: 0,\n      rotation: 0\n    };\n\n    let pipes = [];\n    let frameCount = 0;\n    let score = 0;\n    let highScore = localStorage.getItem(\'flappyHighScore\') || 0;\n    let started = false;\n    let jumpIndicator = { active: false, y: 0 };\n\n    // ----- Clouds for the Background -----\n    let clouds = [];\n    // Create several clouds with random positions, speeds, and scales\n    for (let i = 0; i < 8; i++) {\n      clouds.push({\n        x: Math.random() * canvas.width,\n        y: Math.random() * (canvas.height / 2),\n        speed: 0.3 + Math.random() * 0.3,\n        scale: 0.5 + Math.random() * 0.5\n      });\n    }\n\n    // ----- Audio Setup -----\n    let audioContext;\n    let sounds = {};\n    \n    function initAudio() {\n      try {\n        audioContext = new (window.AudioContext || window.webkitAudioContext)();\n        \n        // Create sounds\n        createSound(\'jump\', createJumpSound);\n        createSound(\'score\', createScoreSound);\n        createSound(\'hit\', createHitSound);\n        createSound(\'gameOver\', createGameOverSound);\n      } catch (e) {\n        console.error("Web Audio API is not supported in this browser", e);\n      }\n    }\n    \n    function createSound(name, creatorFunction) {\n      sounds[name] = { play: () => {} }; // Default empty function\n      if (audioContext) {\n        sounds[name] = creatorFunction();\n      }\n    }\n    \n    function playSound(name) {\n      if (!muted && sounds[name]) {\n        sounds[name].play();\n      }\n    }\n    \n    function createJumpSound() {\n      return {\n        play: function() {\n          const oscillator = audioContext.createOscillator();\n          const gainNode = audioContext.createGain();\n          \n          oscillator.type = \'sine\';\n          oscillator.frequency.setValueAtTime(480, audioContext.currentTime);\n          oscillator.frequency.exponentialRampToValueAtTime(680, audioContext.currentTime + 0.1);\n          \n          gainNode.gain.setValueAtTime(0.3, audioContext.currentTime);\n          gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.2);\n          \n          oscillator.connect(gainNode);\n          gainNode.connect(audioContext.destination);\n          \n          oscillator.start();\n          oscillator.stop(audioContext.currentTime + 0.2);\n        }\n      };\n    }\n    \n    function createScoreSound() {\n      return {\n        play: function() {\n          const oscillator = audioContext.createOscillator();\n          const gainNode = audioContext.createGain();\n          \n          oscillator.type = \'sine\';\n          oscillator.frequency.setValueAtTime(440, audioContext.currentTime);\n          oscillator.frequency.exponentialRampToValueAtTime(880, audioContext.currentTime + 0.1);\n          \n          gainNode.gain.setValueAtTime(0.2, audioContext.currentTime);\n          gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.3);\n          \n          oscillator.connect(gainNode);\n          gainNode.connect(audioContext.destination);\n          \n          oscillator.start();\n          oscillator.stop(audioContext.currentTime + 0.3);\n        }\n      };\n    }\n    \n    function createHitSound() {\n      return {\n        play: function() {\n          const oscillator = audioContext.createOscillator();\n          const gainNode = audioContext.createGain();\n          \n          oscillator.type = \'sawtooth\';\n          oscillator.frequency.setValueAtTime(160, audioContext.currentTime);\n          oscillator.frequency.exponentialRampToValueAtTime(120, audioContext.currentTime + 0.2);\n          \n          gainNode.gain.setValueAtTime(0.3, audioContext.currentTime);\n          gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.3);\n          \n          oscillator.connect(gainNode);\n          gainNode.connect(audioContext.destination);\n          \n          oscillator.start();\n          oscillator.stop(audioContext.currentTime + 0.3);\n        }\n      };\n    }\n    \n    function createGameOverSound() {\n      return {\n        play: function() {\
213n          const oscillator = audioContext.createOscillator();\n          const gainNode = audioContext.createGain();\n          \n          oscillator.type = \'triangle\';\n          oscillator.frequency.setValueAtTime(220, audioContext.currentTime);\n          oscillator.frequency.exponentialRampToValueAtTime(110, audioContext.currentTime + 0.5);\n          \n          gainNode.gain.setValueAtTime(0.3, audioContext.currentTime);\n          gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + 0.7);\n          \n          oscillator.connect(gainNode);\n          gainNode.connect(audioContext.destination);\n          \n          oscillator.start();\n          oscillator.stop(audioContext.currentTime + 0.7);\n        }\n      };\n    }\n    \n    // Toggle mute/unmute\n    muteButton.addEventListener(\'click\', function() {\n      muted = !muted;\n      muteButton.textContent = muted ? \'\ud83d\udd07\' : \'\ud83d\udd0a\';\n      \n      // Initialize audio if first click\n      if (!audioContext && !muted) {\n        initAudio();\n      }\n    });\n\n    // ----- Reset Game Function -----\n    function resetGame() {\n      bird.y = canvas.height / 2;\n      bird.velocity = 0;\n      bird.rotation = 0;\n      pipes = [];\n      frameCount = 0;\n      score = 0;\n      started = false;\n    }\n\n    // ----- Pipe Spawner -----\n    function spawnPipe() {\n      const margin = 40; // Prevent pipes from touching the very top/bottom\n      const gapY = Math.floor(\n        Math.random() * (canvas.height - PIPE_GAP - margin * 2)\n      ) + margin;\n      pipes.push({\n        x: canvas.width,\n        gapY: gapY,\n        passed: false\n      });\n    }\n\n    // ----- Update Clouds -----\n    function updateClouds() {\n      clouds.forEach(cloud => {\n        cloud.x -= cloud.speed;\n        // When a cloud moves off-screen, reposition it to the right\n        if (cloud.x + 100 * cloud.scale < 0) {\n          cloud.x = canvas.width + Math.random() * 50;\n          cloud.y = Math.random() * (canvas.height / 2);\n          cloud.speed = 0.3 + Math.random() * 0.3;\n          cloud.scale = 0.5 + Math.random() * 0.5;\n        }\n      });\n    }\n\n    // ----- Update Game (only when playing) -----\n    function updateGame() {\n      // Apply gravity\n      bird.velocity += GRAVITY;\n      bird.y += bird.velocity;\n      \n      // Update bird rotation based on velocity\n      bird.rotation = bird.velocity * 2;\n      if (bird.rotation > 45) bird.rotation = 45;\n      if (bird.rotation < -45) bird.rotation = -45;\n\n      // Pipe spawn logic\n      frameCount++;\n      if (frameCount % PIPE_SPAWN_INTERVAL === 0) {\n        spawnPipe();\n      }\n\n      // Move pipes to the left\n      for (let i = 0; i < pipes.length; i++) {\n        pipes[i].x -= PIPE_SPEED;\n        \n        // Score when passing through pipes\n        if (!pipes[i].passed && pipes[i].x + PIPE_WIDTH < bird.x) {\n          pipes[i].passed = true;\n          score++;\n          playSound(\'score\');\n          \n          // Update high score\n          if (score > highScore) {\n            highScore = score;\n            localStorage.setItem(\'flappyHighScore\', highScore);\n          }\n        }\n      }\n\n      // Remove pipes that have moved off screen\n      if (pipes.length && pipes[0].x + PIPE_WIDTH < 0) {\n        pipes.shift();\n      }\n\n      // Update jump indicator\n      if (jumpIndicator.active) {\n        jumpIndicator.y += bird.velocity;\n        jumpIndicator.active = jumpIndicator.y < canvas.height;\n      }\n\n      // Collision detection with forgiving hitboxes (reduced by 20%)\n      const hitboxReducer = 0.2;\n      const birdHitboxX = bird.x + bird.width * hitboxReducer;\n      const birdHitboxY = bird.y + bird.height * hitboxReducer;\n      const birdHitboxW = bird.width * (1 - 2 * hitboxReducer);\n      const birdHitboxH = bird.height * (1 - 2 * hitboxReducer);\n      \n      // Collision with ground or ceiling\n      if (birdHitboxY + birdHitboxH > canvas.height || birdHitboxY < 0) {\n        playSound(\'hit\');\n        gameState = "gameover";\n        playSound(\'gameOver\');\n      }\n\n      // Collision with pipes\n      for (let i = 0; i < pipes.length;
213 i++) {\n        const pipe = pipes[i];\n        if (\n          birdHitboxX < pipe.x + PIPE_WIDTH &&\n          birdHitboxX + birdHitboxW > pipe.x\n        ) {\n          if (birdHitboxY < pipe.gapY || birdHitboxY + birdHitboxH > pipe.gapY + PIPE_GAP) {\n            playSound(\'hit\');\n            gameState = "gameover";\n            playSound(\'gameOver\');\n            break;\n          }\n        }\n      }\n    }\n\n    // ----- Draw Clouds -----\n    function drawClouds() {\n      clouds.forEach(cloud => {\n        ctx.save();\n        ctx.fillStyle = \'rgba(255, 255, 255, 0.8)\';\n        ctx.shadowColor = \'rgba(0,0,0,0.2)\';\n        ctx.shadowBlur = 8;\n        // Draw a simple cloud using three arcs\n        let cloudWidth = 100 * cloud.scale;\n        let cloudHeight = 50 * cloud.scale;\n        ctx.beginPath();\n        ctx.arc(cloud.x, cloud.y, cloudHeight / 2, Math.PI * 0.5, Math.PI * 1.5);\n        ctx.arc(cloud.x + cloudWidth / 2, cloud.y - cloudHeight / 2, cloudHeight / 2, Math.PI, 2 * Math.PI);\n        ctx.arc(cloud.x + cloudWidth, cloud.y, cloudHeight / 2, Math.PI * 1.5, Math.PI * 0.5);\n        ctx.closePath();\n        ctx.fill();\n        ctx.restore();\n      });\n    }\n\n    // ----- Draw Jump Indicator -----\n    function drawJumpIndicator() {\n      if (jumpIndicator.active && gameState === "playing") {\n        ctx.save();\n        ctx.strokeStyle = \'rgba(255, 255, 255, 0.5)\';\n        ctx.setLineDash([5, 5]);\n        ctx.beginPath();\n        ctx.moveTo(bird.x + bird.width / 2, bird.y + bird.height / 2);\n        ctx.lineTo(bird.x + bird.width / 2, jumpIndicator.y + bird.height / 2);\n        ctx.stroke();\n        ctx.restore();\n      }\n    }\n\n    // ----- Draw the Redesigned Bird -----\n    function drawBird() {\n      ctx.save();\n      // Set the center for rotation\n      const centerX = bird.x + bird.width / 2;\n      const centerY = bird.y + bird.height / 2;\n      \n      // Rotate around the center\n      ctx.translate(centerX, centerY);\n      ctx.rotate(bird.rotation * Math.PI / 180);\n      ctx.translate(-centerX, -centerY);\n      \n      // Set a subtle shadow for the bird\n      ctx.shadowColor = "rgba(0,0,0,0.3)";\n      ctx.shadowBlur = 10;\n      \n      // Draw the bird body\n      let radius = bird.width / 2;\n      let gradient = ctx.createRadialGradient(centerX, centerY, radius * 0.2, centerX, centerY, radius);\n      gradient.addColorStop(0, "#FFD700"); // bright yellow\n      gradient.addColorStop(1, "#FFA500"); // orange\n      ctx.fillStyle = gradient;\n      ctx.beginPath();\n      ctx.arc(centerX, centerY, radius, 0, Math.PI * 2);\n      ctx.fill();\n\n      // Draw an eye\n      ctx.fillStyle = "#fff";\n      ctx.beginPath();\n      ctx.arc(centerX + radius * 0.3, centerY - radius * 0.2, radius * 0.3, 0, Math.PI * 2);\n      ctx.fill();\n      ctx.fillStyle = "#000";\n      ctx.beginPath();\n      ctx.arc(centerX + radius * 0.3, centerY - radius * 0.2, radius * 0.15, 0, Math.PI * 2);\n      ctx.fill();\n      \n      // Draw wings\n      ctx.fillStyle = "#FFA500";\n      ctx.beginPath();\n      ctx.ellipse(\n        centerX - radius * 0.5, \n        centerY, \n        radius * 0.5, \n        radius * 0.8, \n        0, 0, Math.PI * 2\n      );\n      ctx.fill();\n      \n      // Draw beak\n      ctx.fillStyle = "#FF6347";\n      ctx.beginPath();\n      ctx.moveTo(centerX + radius * 0.8, centerY);\n      ctx.lineTo(centerX + radius * 1.2, centerY);\n      ctx.lineTo(centerX + radius * 0.8, centerY + radius * 0.2);\n      ctx.closePath();\n      ctx.fill();\n      \n      ctx.restore();\n    }\n\n    // ----- Draw Pipes with Improved Design -----\n    function drawPipes() {\n      ctx.save();\n      \n      pipes.forEach(pipe => {\n        // Pipe gradient\n        const pipeGradient = ctx.createLinearGradient(pipe.x, 0, pipe.x + PIPE_WIDTH, 0);\n        pipeGradient.addColorStop(0, "#228B22"); // forest green\n        pipeGradient.addColorStop(0.5, "#32CD32"); // lime green\n        pipeGradient.addColorStop(1, "#228B22"); // forest green\n        \n        ctx.fillStyle = pipeGradient;\n        ctx.shadowColor = "rgba(0,0,0,0.5)";\n        ctx.shadowBlur = 10;\n        \n        // Top pipe with decorative end\n        ctx.fillRect(pipe.x, 0, PIPE_WIDTH, pipe.gapY);\n        ctx.fillStyle = "#32CD32";\n        ctx.fillRect(pipe.x - 5, pipe.gapY - 20, PIPE_WIDTH + 10, 20);\n        \n        // Bottom pipe with decorative end\n        ctx.fillStyle = pipeGradient;\n        ctx.fillRect(pipe.x, pipe.gapY + PIPE_GAP, PIPE_WIDTH, canvas.height - pipe.ga
213pY - PIPE_GAP);\n        ctx.fillStyle = "#32CD32";\n        ctx.fillRect(pipe.x - 5, pipe.gapY + PIPE_GAP, PIPE_WIDTH + 10, 20);\n      });\n      \n      ctx.restore();\n    }\n\n    // ----- Draw Score and High Score -----\n    function drawScore() {\n      ctx.save();\n      ctx.textAlign = "center";\n      \n      // Current score\n      ctx.fillStyle = "#fff";\n      ctx.font = "bold 40px Arial";\n      ctx.shadowColor = "rgba(0,0,0,0.5)";\n      ctx.shadowBlur = 5;\n      ctx.fillText(score, canvas.width / 2, 60);\n      \n      // High score\n      if (gameState === "gameover" || gameState === "menu") {\n        ctx.font = "20px Arial";\n        ctx.fillText(`High Score: ${highScore}`, canvas.width / 2, 100);\n      }\n      \n      ctx.restore();\n    }\n\n    // ----- Draw Start Menu -----\n    function drawMenu() {\n      ctx.save();\n      ctx.fillStyle = "rgba(0, 0, 0, 0.6)";\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n      \n      // Title\n      ctx.fillStyle = "#FFF";\n      ctx.textAlign = "center";\n      ctx.font = "bold 48px Arial";\n      ctx.shadowColor = "rgba(0,0,0,0.5)";\n      ctx.shadowBlur = 10;\n      ctx.fillText("Flappy Bird", canvas.width / 2, canvas.height / 2 - 60);\n      \n      // Start instructions\n      ctx.font = "24px Arial";\n      ctx.fillText("Tap or Press Space to Start", canvas.width / 2, canvas.height / 2 + 20);\n      \n      // Bird animation on menu\n      let menuBirdY = canvas.height / 2 - 100 + Math.sin(Date.now() / 300) * 15;\n      ctx.restore();\n      \n      // Save position and draw the bird manually\n      let originalY = bird.y;\n      bird.y = menuBirdY;\n      drawBird();\n      bird.y = originalY;\n    }\n\n    // ----- Draw Game Over Screen -----\n    function drawGameOver() {\n      ctx.save();\n      ctx.fillStyle = "rgba(0, 0, 0, 0.6)";\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n      \n      ctx.fillStyle = "#FFF";\n      ctx.textAlign = "center";\n      ctx.shadowColor = "rgba(0,0,0,0.5)";\n      ctx.shadowBlur = 10;\n      \n      // Game Over text\n      ctx.font = "bold 48px Arial";\n      ctx.fillText("Game Over", canvas.width / 2, canvas.height / 2 - 80);\n      \n      // Score\n      ctx.font = "32px Arial";\n      ctx.fillText(`Score: ${score}`, canvas.width / 2, canvas.height / 2 - 20);\n      \n      // High Score\n      if (score >= highScore) {\n        ctx.fillStyle = "#FFD700";\n        ctx.fillText("New High Score!", canvas.width / 2, canvas.height / 2 + 30);\n      }\n      \n      // Restart instructions\n      ctx.fillStyle = "#FFF";\n      ctx.font = "24px Arial";\n      ctx.fillText("Tap or Press Space to Restart", canvas.width / 2, canvas.height / 2 + 80);\n      \n      ctx.restore();\n    }\n\n    // ----- Main Game Loop -----\n    function gameLoop() {\n      // Clear canvas\n      ctx.fillStyle = "#70c5ce";\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n      \n      // Always update and draw the clouds in the background\n      updateClouds();\n      drawClouds();\n\n      // Update and render based on the game state\n      if (gameState === "playing") {\n        updateGame();\n        drawJumpIndicator();\n        drawPipes();\n        drawBird();\n        drawScore();\n        \n        // Hide instruction after game starts\n        if (started) {\n          instructionText.style.display = \'none\';\n        }\n      } else if (gameState === "menu") {\n        drawMenu();\n        instructionText.style.display = \'block\';\n      } else if (gameState === "gameover") {\n        drawPipes();\n        drawBird();\n        drawScore();\n        drawGameOver();\n        instructionText.style.display = \'none\';\n      }\n\n      requestAnimationFrame(gameLoop);\n    }\n\n    // ----- Input Handling -----\n    function handleInput() {\n      // Initialize audio on first interaction\n      if (!audioContext && !muted) {\n        initAudio();\n      }\n      \n      if (gameState === "menu") {\n        gameState = "playing";\n        resetGame();\n      } else if (gameState === "playing") {\n        // Make the bird jump\n        bird.velocity = JUMP_STRENGTH;\n        playSound(\'jump\');\n        \n        // Set jump indicator\n        jumpIndicator.active = true;\n        jumpIndicator.y = bird.y;\n        \n        // Mark that the game has started\n        started = true;\n      } else if (gameState === "gameover") {\n        // Return to the menu to start again\n        gameState = "menu";\n      }\n    }\n\n    // ----- Event Listeners -----\n    // Keyboard controls\n    document.addEventListener("keydown", (e) => {\n      if (e.code === "Space") {\n        e.preventDefault(); // Prevent page scrolling\n        handleInput();\n      }\n    });\n    \n    // Touch/click controls\n    canvas.addEventListener("click", handleInput);\n    canvas.addEventListener("touchstart", function(e) {\n      e.preventDefault(); // Prevent double-firing on mobile\n      handleInput();\n    }, {passive: false});\n\n    // ----- Start the Game -----\n    resetGame();\n    gameLoop();\n  <\/script>\n</body>\n</html>'},{id:"fb1b565e-8f78-4fa4-a1e2-8c7ac7b95180",title:"Speed Up Your Slow MacBook in 2025",slug:"speed-up-your-slow-macbook-in-2025",excerpt:"Discover how to clean up your Mac, free disk space, and boost performance using free tools and simple tips in this 2025 guide.",content:'\n## Speed Up Your Slow MacBook in 2025\n\nIf your MacBook feels sluggish, don\u2019t rush to replace it. There\u2019s a solid chance your system just needs a tune-up. Whether you\'re a casual user or a creative professional, these steps will help your Mac run faster using built-in tools and free apps.\n\n### Start with Software Updates\n\nOutdated apps and macOS versions often cause slowdowns.  \n**Steps:**  \n- Open Settings > General > Software Update  \n- Install any available updates\n\n### Clear Cache Files\n\nOver time, cache files accumulate and can slow down your system.  \n**How to clear them:**  \n- Press `Command + Shift + G` in Finder  \n- Navigate to `~/Library/Caches`  \n- Delete unnecessary folders  \n\n> Tip: Clearing cache may temporarily slow down apps as they rebuild cache files.\n\n### Check Your Disk Space\n\nMaintaining at least 10 to 15 percent of free storage is essential for smooth performance.  \n**Steps:**  \n- Go to Finder > Go > Computer  \n- Right-click your drive > Manage Storage  \n- Remove large, unused applications and files\n\n### Use Activity Monitor\n\nMonitor your system for resource-heavy applications.  \n**Access it via:** Launc
213hpad > Utilities > Activity Monitor  \nCheck the CPU, Memory, and Disk tabs for apps using excessive resources and end those processes if needed.\n\n### Disable Login Items\n\nPrevent non-essential apps from launching at startup.  \n**Steps:**  \n- Go to Settings > Login Items  \n- Remove unnecessary apps from the startup list\n\n### Use the Terminal to Free RAM\n\nThe following command clears temporary files from your RAM:\nsudo purge\n\n> Tip: Use this after rendering or extended recording sessions to reclaim memory.\n\n### Run Disk Utility\n\nRepair disk permissions and verify drive integrity.  \n**Steps:**  \n- Open Disk Utility via Launchpad  \n- Select your drive > Run "First Aid"\n\n### Reduce Visual Effects\n\nFor older MacBooks, turning off certain visual effects can improve responsiveness.  \n**Steps:**  \n- Go to Settings > Accessibility > Display  \n- Enable \u201cReduce Motion\u201d and \u201cReduce Transparency\u201d\n\n### Use CCleaner (Free Version)\n\nCCleaner helps you clean:  \n- App cache and logs  \n- System junk  \n- Large and duplicate files  \n- Browser cookies and history\n\n> In our example, CCleaner removed over 1.3 terabytes of unnecessary data.\n\n### Scan for Duplicate Files\n\nCCleaner can locate duplicate files across your system, a useful feature if your file management is disorganized.\n\n### Summary\n\nImproving your MacBook\u2019s performance does not require expensive upgrades. By following this guide, you can clean up storage, optimize system resources, and extend your Mac\u2019s life span.\n\n### Key Takeaways\n\n- Keep macOS and apps updated  \n- Regularly clear cache and unused files  \n- Monitor and manage resource usage  \n- Use Disk Utility and Terminal for deeper optimizations  \n- Leverage free tools like CCleaner for advanced cleanup\n\n',category:"Tutorials",image_url:"https://64.media.tumblr.com/f9d07706c1bbc0cbae5c1e8137fe7b8e/79a6571ff7113728-5d/s2048x3072/824414d890064219e2b2ab88594ff20151fa3dd1.pnj",featured:!1,published:!0,read_time:8,views:0,likes:0,published_at:"2025-03-25T16:46:49.412151+00:00",created_at:"2025-03-25T16:46:49.412151+00:00",updated_at:"2025-03-25T16:46:49.412151+00:00",youtube_video_id:"0Fkq2lSsXyc"},{id:"c097a8ec-648e-47f7-a6c9-d4a4e2da3a27",title:"How This Budget Mic Helps Creators Go Viral",slug:"budget-mic-helps-creators-go-viral",excerpt:"Learn how creators are using unconventional strategies like household items and the FIFINE M9 mic to capture attention, boost retention, and grow on YouTube.",content:"\n## Why Unconventional Strategies Grab Attention  \n\nIf you\u2019ve been on YouTube lately, you\u2019ve probably seen a bizarre trend: creators using **toilet seats, spatulas**, and even **pool noodles** as microphones. It\u2019s strange, quirky, and undeniably attention-grabbing.  \n\nThis trend isn\u2019t just a silly fad \u2013 it\u2019s a **smart strategy**. With so much content uploaded to YouTube every second, creators are looking for ways to stand out from the crowd.  \n\n---\n\n## Why Does This Work?  \n\n### **1. Pattern Interrupt**  \nHumans are creatures of habit. When scrolling through videos, viewers expect the same visuals:  \n- Someone sitting at a desk  \n- Talking into a fancy microphone  \n- Predictable setups  \n\nBut when a creator holds up a **spatula** and starts talking into it, the brain takes notice. It\u2019s unexpected. It breaks the monotony of \u201cnormal\u201d content and forces viewers to ask, *\u201cWhat\u2019s going on here?\u201d*  \n\nThis extra second of curiosity makes a huge difference. The YouTube algorithm loves retention. If you can get someone to pause for even a few seconds longer, it increases the likelihood of your video performing well.\n\n### **2. Emotional Connection Through Humor**  \nUsing unconventional items adds a layer of **humor and relatability** to your content. People love to laugh, and seeing someone creatively turn a household item into a microphone gives off a playful, **low-budget genius** vibe.  \n\nIt sends the message:  \n> \u201cYou don\u2019t need expensive gear to be creative or successful.\u201d  \n\nThat kind of relatability builds trust with your audience and keeps them coming back for more.\n\n---\n\n## The FIFINE M9 \u2013 The Hidden Hero Behind the Trend  \n\nThese unconventional videos work because creators use a wireless lavalier mic setup like the **FIFINE M9**. Here\u2019s why the M9 is the perfect tool for this viral strategy:  \n\n- **Dual Microphones**: Two mics let you record dynamic interviews or double the creativity.  \n- **Compact & Discreet**: The M9 is small and lightweight, making it easy to hide in **anything** \u2013 even a pool no
213odle!  \n- **Budget-Friendly**: At under $100, it\u2019s a steal compared to competitors like the Rode Wireless Go ($300+).  \n- **High-Quality Audio**: Despite its low price, the M9 delivers clear, natural sound with a frequency range of 20Hz-20kHz.  \n\nWhether you\u2019re attaching it to a **toilet seat** or your standard boom arm, the M9 performs consistently. It\u2019s reliable, simple to set up, and just works.\n\n---\n\n## Standing Out as a Small Creator  \n\nIn today\u2019s oversaturated creator landscape, blending in is the fastest route to obscurity. Successful creators know that **being different is an advantage**.  \n\nHere are a few takeaways for small creators looking to grow:  \n\n- **Be Unpredictable**: Find ways to surprise your audience. Unique props, unusual setups, and creative edits can grab attention.  \n- **Use Affordable Gear**: Tools like the FIFINE M9 prove you don\u2019t need expensive equipment to make great content. Focus on storytelling and creativity instead.  \n- **Lean Into Humor and Creativity**: People love content that feels authentic and playful. It doesn\u2019t need to be overly polished.  \n\n> *\u201cThe people who think outside the box are often the ones who succeed.\u201d*  \n\nDon\u2019t be afraid to try something different \u2013 you never know what will resonate with your audience and go viral.\n\n---\n\n## Downsides to Keep in Mind  \n\nWhile the FIFINE M9 is fantastic for most use cases, it does have a couple of limitations:  \n\n- **No Button Lock**: If your subject holds the mic directly, they might accidentally press buttons. Make sure to clip it securely.    \n\n---\n\n## Final Verdict  \n\nThe FIFINE M9 wireless mic setup is a game-changer for small creators. It\u2019s affordable, compact, and delivers impressive audio quality for its price. Paired with a little creative thinking, this mic can help you produce content that stands out, captures attention, and keeps viewers engaged.  \n\nIf you\u2019re looking for a way to grow on YouTube without spending a fortune, the FIFINE M9 is worth every penny.\n\n---\n\n## Want a Chance to Win One?  \n\nI\u2019m giving away a set of FIFINE M9 microphones to one lucky subscriber! \ud83c\udf81  \n\nHere\u2019s how to enter:  \n1. Subscribe to my channel  \n2. Like this video  \n3. Leave a comment below  \n\nI\u2019ll announce the winner on **Christmas morning** \u2013 so you might wake up to an extra present under your tree. \ud83c\udf84  \n\n---\n\n## The Bottom Line  \n\nYou don\u2019t need the fanciest gear or the biggest budget to go viral. Sometimes, all it takes is a creative idea, a budget mic like the FIFINE M9, and the courage to stand out from the crowd.\n\nHappy creating! \ud83c\udfa4  \n",category:"Tech Reviews",image_url:"https://64.media.tumblr.com/109cd3e443b92c3db0e6d367f3b53d81/199e0ea0f1e96b18-a3/s2048x3072/1667c513f171a77aad0de2b5c9dd54410f87b11c.pnj",featured:!1,published:!0,read_time:10,views:731,likes:0,published_at:"2024-12-17T19:18:57.061659+00:00",created_at:"2024-12-17T19:18:57.061659+00:00",updated_at:"2024-12-17T19:18:57.061659+00:00",youtube_video_id:"_H51RZC6RUk"},{id:"33c2d130-a3b6-4f7a-bfcc-9bbaf023f5a9",title:"ElevenLabs Sound Effect Generator: AI-Powered Audio Creation Tutorial",slug:"elevenlabs-sound-effect-generator-ai-audio-creation-tutorial",excerpt:"Discover ElevenLabs' innovative sound effect generator that creates custom audio effects through text descriptions. Learn how to use this free tool to enhance your content with AI-generated sound effects.",content:"## Introducing ElevenLabs'' Sound Effect Generator\n\nElevenLabs, known for their voice cloning technology, has launched an impressive text-to-sound effect generator. This tool allows content creators to generate custom sound effects simply by describing them in text, offering a compelling alternative to traditional sound effect libraries.\n\n### Getting Started with the Free Plan\n\nEvery new user starts with:\n- 10,000 monthly characters\n- Each sound generation costs 200 characters\n- Four unique variations per generation\n- Access to custom voices and speech generation features\n\n> **Pro Tip**: Even though each generation costs 200 characters, you''re essentially getting 50 different sound effect options with the free plan!\n\n### Key Features and Capabilities\n\n#### Duration and Prompt Control\n- Adjustable clip length (default: 2-3 seconds)\n- Prompt adherence settings (0-100%)\n- Multiple variations per generation\n- History tracking for previous generations\n\n#### Generation Examples\n\n##### Simple Environmental Sounds\n```text\n\"Calm ocean waves with gentle seagull in the background\"\n```\nResults: Creates realistic wave sounds with occasional seagull calls, though seagull presence varies between generations.\n\n##### Atmospheric Effects\n```text\n\"Haunting wind with distant eerie whispers\"\n```\nResults: Produces compelling atmospheric sounds suitable for horror or suspense scenes.\n\n##### UI/UX Sounds\n```text\n\"Satisfying UI button click\"\n```\nResults: Generates clean, precise button sounds ideal for interface design.\n\n### Current Limitations\n\nThe tool excels at common sound effects but may struggle with:\n- Complex sound combinations\n- Unrealistic sce
213narios (e.g., \"rain hitting lava\")\n- Highly specific or technical sound requirements\n\n### Best Practices\n\n1. **Keep Descriptions Broad**: Broader prompts often yield better results than overly specific ones\n2. **Adjust Settings Carefully**: \n   - Use 100% prompt adherence for precise needs\n   - Adjust duration based on your specific use case\n3. **Save Successful Generations**: Use the history feature to track and reuse effective sounds\n\n## Why Choose ElevenLabs'' Sound Generator?\n\n#### Advantages\n- Free to try with generous character allowance\n- No subscription required\n- Instant generation\n- Multiple variations per prompt\n- High-quality output for common effects\n\n#### Perfect For\n- Content creators\n- Game developers\n- UI/UX designers\n- Podcast producers\n- Video editors\n\n### Future Potential\n\nWhile still in its early stages, the tool shows remarkable promise for:\n- Reducing dependency on traditional sound libraries\n- Creating unique, custom sound effects\n- Streamlining the audio production workflow\n\n## Conclusion\n\nElevenLabs'' Sound Effect Generator represents a significant step forward in AI-powered audio production. While it may not completely replace traditional sound libraries yet, it offers a valuable, free tool for creators needing quick, custom sound effects.",category:"Tutorials",image_url:"https://64.media.tumblr.com/033c4c2864db3b858863997996615638/aef36cfda904ace6-cb/s2048x3072/76075881908817b486fd3835f507cdc11ca6e7b5.pnj",featured:!1,published:!0,read_time:8,views:94,likes:0,published_at:"2024-11-16T17:35:25.419+00:00",created_at:"2024-11-16T17:35:25.419+00:00",updated_at:"2024-11-16T17:35:25.419+00:00",youtube_video_id:"723726piv4M"},{id:"096e9020-07d6-4aec-bfd6-383020bddee6",title:"Hidden CapCut Browser Tools: Free Video Editing Power Suite",slug:"hidden-capcut-browser-tools-free-video-editing",excerpt:"Discover CapCuts suite of powerful browser-based editing tools, including batch editors, background removers, and AI-powered features - all completely free with no subscription required.",content:"## Unlocking CapCut's Secret Browser Tools\n\nWhile CapCut is already known for its mobile editing capabilities, few creators realize it offers a powerful suite of browser-based tools - completely free and with no subscription required. These tools rival premium alternatives and can significantly enhance your content creation workflow.\n\n### Accessing the Tools\n\nThere are two main ways to access CapCut's browser tools:\n1. Direct tools splash page\n2. Project page (requires sign-in) \u2192 Magic Tools section\n\n> **Pro Tip**: The project page interface provides a more organized view of all available tools and features.\n\n### Key Features Overview\n\n#### \ud83c\udfac Video Enhancement Tools\n- Long video to shorts converter\n- Video upscaler\n- Video stabilization\n- Super slow motion effects\n\n#### \ud83c\udfa8 Image Processing\n- Batch editing capabilities\n- Background removal\n- Image upscaler\n- Photo colorizer (B&W to color)\n\n#### \ud83e\udd16 AI-Powered Features\n- Script to video generation\n- AI character creation\n- Text to design conversion\n- Ad creation assistance\n\n### Spotlight: Background Removal Tool\n\nThe background removal tool offers professional-grade capabilities:\n\n1. **Auto Detection**\n   - Intelligent subject recognition\n   - One-click removal option\n\n2. **Customization Options**\n   - Multiple background color choices\n   - Custom color selection\n   - Export for further editing\n\n3. **Integration Tips**\n   - Export with colored background for keying\n   - Compatible with major editing software\n   - Supports both images and videos\n\n### Batch Editing: A Game-Changer\n\n#### Key Features\n- Process up to 50 images simultaneously\n- Automatic background removal\n- Unified styling options\n- Consistent branding application\n\n#### Perfect For:\n- E-commerce product photos\n- Social media content creators\n- Brand consistency maintenance\n- Bulk image processing\n\n> **Use Case**: Ideal for online sellers needing consistent product photography across platforms like Amazon or eBay.\n\n### Script to Video Generator\n\nWhile still in early stages, this tool offers:\n- AI-powered script generation\n- Automatic video creation\n- Custom media integration options\n- Multiple preset topics\n\n### Advanced Features\n\n#### Video Enhancement\n- Professional upscaling\n- Stability improvement\n- Frame rate optimization\n- Quality enhancement\n\n#### Image Processing\n- AI-powered colorization\n- Resolution improvement\n- Batch processing\n- Style transfer\n\n## Best Practices\n\n### For Optimal Results\n1. Use appropriate background colors for keying\n2. Batch process similar content together\n3. Export in highest quality when available\n4. Test AI features with simple projects first\n\n### Time-Saving Tips\n- Utilize batch processing for similar items\n- Save commonly used settings\n- Use preset templates when available\n- Keep original files backed up\n\n## Conclusion\n\nCapCut's browser-based tools offer a remarkable suite of features that rival premium alternatives. While some features like the script-to-video generator are still maturing, the core tools provide professional-grade capabilities without any cost barr
213ier.\n\n### Key Takeaways\n- Completely free to use\n- No software installation required\n- Professional-grade results\n- Regular updates and improvements\n- Broad range of applications\n\nWhether you're a content creator, small business owner, or casual editor, these tools can significantly streamline your workflow without impacting your budget.",category:"Video Editing",image_url:"https://64.media.tumblr.com/1502cb4b63e7a648d5d6919bea588d35/aef36cfda904ace6-62/s2048x3072/bec7864b183f1516e9bfbccd2f6689e740d64d02.pnj",featured:!1,published:!0,read_time:9,views:234,likes:0,published_at:"2024-11-16T17:35:15.52348+00:00",created_at:"2024-11-16T17:35:15.52348+00:00",updated_at:"2024-11-16T17:35:15.52348+00:00",youtube_video_id:"lYpz9XEpgEw"},{id:"40ed41f7-e798-4b21-ba20-1e01ab5f38ce",title:"Fine SC3 Mixer Review: A Budget-Friendly Audio Solution for Creators",slug:"fine-sc3-mixer-review-budget-audio-solution",excerpt:"Exploring the Fine SC3 audio mixer, an affordable choice for beginner creators and streamers looking for solid audio control without breaking the bank.",content:'\n## Introduction\nIn the world of streaming and content creation, having reliable audio equipment is key, but high-quality gear often comes with a high price tag. Enter the **Fine SC3 Mixer** \u2013 a budget-friendly audio mixer aimed at new streamers and content creators. Priced under $60, the SC3 offers a range of features suited to those starting their journey without a pro-level setup.\n\n## Features and Key Benefits\nThe Fine SC3 packs several impressive features for its price point:\n\n- **XLR Input with Phantom Power**: Supports both condenser and dynamic mics, powered by its 48V phantom power, making it versatile for various microphone types.\n- **Voice Modulation Options**: Six voice effects, including robot and monster modes, add a fun element for live streams.\n- **Audio Sample Buttons**: Record small audio samples for playback during streaming, a useful tool for quick sound effects.\n- **Integrated Faders**: While they may feel less premium, the faders provide light indicators for adjusting gain levels and audio monitoring.\n\n## How It Stacks Up\nReviewer Harris Heller highlighted some limitations, notably around controlling PC and mic audio levels independently. While he has a point, I found that while the Fine SC3 doesn\u2019t have separate controls for PC and mic levels, it does allow overall volume adjustments, which is more than reasonable at this price.\n\n> "It\u2019s not a full-fledged audio interface like the GoXLR, but for under $60, it\u2019s a great entry-level option for creators."\n\n## Ideal Setup and Usage\nThe SC3 works best with a **single PC setup**. When connected via USB-C, it provides both input and output audio options, making it simple for a first-time streamer to monitor their audio. For musicians, like pianists or guitarists, the mixer also accepts line-in options, expanding its use case.\n\n### Pro Tips\n- For live streaming, keep mic monitoring on to catch audio issues in real time.\n- Consider this mixer if you need an affordable way to integrate multiple audio sources (e.g., vocals and instruments) into your stream.\n\n## Final Thoughts\nWhile the Fine SC3 lacks some advanced features, it brings solid audio mixing c
213apabilities to creators on a budget. If you\u2019re new to streaming and need a straightforward, functional audio mixer, this device deserves your attention.\n\n### Key Takeaways\n- Budget-friendly, feature-packed mixer ideal for single-PC setups.\n- Suitable for new creators and musicians.\n- Lacks independent audio controls but offers overall volume adjustment.\n\n',category:"Tech Reviews",image_url:"https://64.media.tumblr.com/2dc2d797a734b17459ff6b4aa7e47434/ca81ffb1e97d1366-fb/s2048x3072/5e8d0f3e373adcfc5fb5e73be24d9475a96494fb.pnj",featured:!1,published:!0,read_time:5,views:147,likes:0,published_at:"2024-11-12T02:42:57.004697+00:00",created_at:"2024-11-12T02:42:57.004697+00:00",updated_at:"2024-11-12T02:42:57.004697+00:00",youtube_video_id:"-ptMZOtRGYo"},{id:"1344819b-ce66-4967-9f2a-92df176708e7",title:"How to Create Perfect Karaoke Tracks: A Free Alternative to Vocal Remover",slug:"create-perfect-karaoke-tracks-free-alternative-vocal-remover",excerpt:"Learn how to isolate vocals and create karaoke versions of any song using Ultimate Vocal Remover 5, a powerful, free tool that runs locally on your machine. No subscriptions needed!",content:'## Creating Professional Karaoke Tracks with Ultimate Vocal Remover 5\n\nLooking for a reliable way to create karaoke versions of your favorite songs? While online tools like vocal remover.org work well, they often come with limitations and subscription fees. Today, I\'ll introduce you to Ultimate Vocal Remover 5, a free, locally-running solution that offers even better vocal isolation capabilities.\n\n### Key Benefits of Ultimate Vocal Remover 5\n- 100% free to use\n- Runs locally on your machine\n- No usage limitations\n- Superior vocal isolation quality\n- Supports both vocal removal and isolation\n\n### Installation Guide\n\n#### Windows Users\n1. Visit ultimatevocalremover.com\n2. Click "Download UVR" to access the GitHub link\n3. Use the main download link for Windows\n4. Run the UVR setup file\n5. Follow the standard installation process (Next > Next > Install)\n\n#### Mac Users\n1. Follow the same website path\n2. Choose the appropriate download:\n   - Apple Silicon: Use the specific Apple Silicon link\n   - Intel Mac: Use the Intel-specific link\n3. Drag the UVR icon to your Applications folder\n\n### Using Ultimate Vocal Remover 5\n\n#### Initial Setup\n1. Launch Ultimate Vocal Remover\n2. Download the recommended model:\n   - Click "Choose Model"\n   - Select the middle category\n   - Scroll to find "NET-voc ft"\n   - Download the model\n\n#### Processing Your First Track\n1. Select your input audio file\n2. Choose an output folder\n3. Select either:\n   - "Vocals Only" for isolated vocals\n   - "Instrumental Only" for karaoke backing tracks\n4. Click "Start Processing"\n\n> **Pro Tip**: The "NET-voc ft" model is specifically trained for optimal music and vocal separation, providing superior results compared to the default model.\n\n### Performance Notes\n- Processing time varies by song length\n- Example processing time: ~3.5 minutes per track\n- No internet connection required during processing\n- Maintains high-quality audio output\n\n## Summary\nUltimate Vocal Remover 5 provides a professional-grade solution for creating karaoke tracks and isolating vocals. Its local processing capability, combined with zero cost and unlimited usage, makes it an essential tool for content creators, musicians, and karaoke enthusiasts.\n\n### Key Takeaways\n- Free alternative to subscription-based services\n- Local processing ensures privacy and unlimited use\n- High-quality vocal separation using advanced AI models\n- Supports both vocal isolation and removal\n- User-friendly interface for all skill levels',category:"Tutorials",image_url:"https://64.media.tumblr.com/6a634bd2afa492bc6c2415582c027b32/c7c326bb8a77b230-9a/s1280x1920/160dd18212c955d0f61281d375f576dd008ff331.pnj",featured:!1,published:!0,read_time:7,views:114,likes:0,published_at:"2024-11-09T22:54:31.33732+00:00",created_at:"2024-11-09T22:54:31.33732+00:00",updated_at:"2024-11-09T22:54:31.33732+00:00",youtube_video_id:"Xfnu3GjDHno"},{id:"cccc7fa7-b43e-45f9-ab76-8aad96b5d038",title:"Finding Your Perfect YouTube Niche: A Strategic Guide for New Creators",slug:"finding-youtube-niche-strategy-guide",excerpt:"Learn how to identify and validate your ideal YouTube niche. Discover the balance between passion and profitability, and understand which content format suits your style best.",content:"## Choosing Your YouTube Direction: Niche and Format Guide\n\nOne of the most crucial decisions you'll make as a new creator is choosing your niche and content format. Let's break down how to make this decision strategically.\n\n### Understanding Content Formats\n\n#### Long-Form Content (10+ minutes)\n**Pros:**\n- Better monetization potential\n- Builds deeper audience connection\n- Higher search visibility\n- More room for detailed content\n\n**Cons:**\n- Requires more production time\n- Harder to maintain consistent schedule\n- Need for extensive planning\n\n#### Short-Form Content (< 3 minutes)\n**Pros:**\n- Faster to produce\n- Easier to experiment\n- Higher chance of viral growth\n- Perfect for busy creators\n\n**Cons:**\n- Lower monetization potential\n- Harder to build loyal audience\n- More competition\n\n#### Live Streaming\n**Pros:**\n- Immediate audience interaction\n- Less editing required\n- Creates strong community bonds\n- Regular engagement\n\n**Cons:**\n- Requires set schedule\n- Technical challenges\n- Need for constant energy\n- Less evergreen value\n\n### Finding Your Niche\n\n#### Step 1: Initial Brainstorming\n1. List your:\n   - Hobbies\n   - Professional skills\n   - Daily activities\n   - Topics you enjoy learning about\n\n2. Consider:\n   - What do people ask your advice about?\n   - What could you talk about for hours?\n   - What problems can you solve?\n\n#### Step 2: Market Research\n1. Analyze Competition\n   - Search your topics on YouTube\n   - Study successful channels\n   - Look for underserved angles\n\n2. Check Search Volume\n   - Use YouTube search suggestions\n   - Try Google Trends\n   - Review related keywords\n\n#### Step 3: Validate Your Niche\n\n**The Perfect Niche Formula:**\n```\nYour Passion + Audience Demand + Monetization Potential = Viable Niche\n```\n\nAsk yourself:\n1. Can you create 100+ videos on this topic?\n2. Is there search volume for this content?\n3. Are there products/services to promote?\n4. Does this topic have staying power?\n\n### Choosing Your Format\n\nConsider these factors:\n1. **Your Schedule**\n   - Long-form: 10+ hours/video\n   - Short-form: 2-4 hours/video\n   - Live: Set schedule needed\n\n2. **Your Personality**\n   - Comfortable on camera?\n   - Good at improvising?\n   - Prefer scripted content?\n\n3. **Your Goals**\n   - Build authority? (Long-form)\n   - Quick growth? (Shorts)\n   - Community building? (Live)\n\n### Testing Your Choice\n\n1. **Create Test Content**\n   - Make 3-5 videos in each format\n   - Try different approaches\n   - Monitor viewer response\n\n2. **Analyze Results**\n   - Watch time\n   - Engagement rates\n   - Your enjoyment level\n   - Production efficie
213ncy\n\n### Red Flags to Watch For\n- Oversaturated niches\n- Trending topics with short lifespans\n- Topics you don't genuinely enjoy\n- Formats that drain your energy\n\n## Action Steps\n1. Complete the niche brainstorming exercise\n2. Research top 10 channels in your potential niche\n3. Create content in different formats\n4. Analyze results after 30 days\n5. Commit to your chosen direction\n\nRemember: Your first niche choice isn't permanent. Many successful creators pivot as they grow and learn more about their audience and themselves.",category:"YouTube Growth",image_url:"https://64.media.tumblr.com/f45ef4c45d6f61aa4b7b7996a1a5ad89/f0906578731fe354-68/s2048x3072/3340c7e5d53f24df1fbdfeee3e5f9db49bf12b0d.pnj",featured:!1,published:!0,read_time:10,views:369,likes:0,published_at:"2024-11-07T04:06:29+00:00",created_at:"2024-11-10T04:06:29+00:00",updated_at:"2024-10-31T03:06:29+00:00"},{id:"d43fb626-bb6a-4619-a313-e94f9d9f12b3",title:"How to Grow on YouTube While Working Full-Time: A Beginner's Guide",slug:"grow-youtube-channel-with-full-time-job",excerpt:"Discover practical strategies for building a successful YouTube channel while maintaining a 9-5 job. Learn time management techniques, content planning, and sustainable growth tactics for part-time creators.",content:"## Building a YouTube Channel Around Your 9-5 Schedule\n\nStarting a YouTube channel while working full-time might seem daunting, but with the right approach, you can build a thriving channel without burning out. Here's your roadmap to making it work.\n\n### Setting Realistic Expectations\n- Start with 1-2 videos per month\n- Focus on quality over quantity\n- Accept slower initial growth\n- Remember: consistency beats frequency\n\n### Time Management Essentials\n1. **Batch Content Creation**\n   - Film multiple videos in one session\n   - Edit several videos when you're in the flow\n   - Schedule uploads in advance\n\n2. **Create a Sustainable Schedule**\n   - Dedicate specific weekday evenings to filming\n   - Use weekends for editing\n   - Plan content month by month\n\n### Maximize Your Limited Time\n\n#### Content Planning (2-3 hours monthly)\n- Research trending topics in your niche\n- Create content calendar\n- Outline video scripts\n\n#### Filming (4-6 hours monthly)\n- Set up permanent filming space\n- Use natural light when possible\n- Film 2-3 videos per session\n\n#### Editing (8-10 hours monthly)\n- Create templates for intros/outros\n- Use keyboard shortcuts\n- Consider outsourcing when profitable\n\n### Growth Strategies for Part-Time Creators\n\n1. **Focus on Searchable Content**\n   - Tutorial-based videos\n   - How-to guides\n   - Problem-solving content\n\n2. **Optimize Your Videos**\n   - Strong titles and thumbnails\n   - Detailed descriptions\n   - Strategic tag usage\n\n3. **Build Systems**\n   - Video templates\n   - Description templates\n   - Thumbnail templates\n\n### Managing Your Energy\n\n1. **Morning Routine**\n   - Wake up 1 hour earlier\n   - Work on YouTube before your day job\n   - Focus on high-energy tasks\n\n2. **Evening Schedule**\n   - Set aside 1-2 hours after work\n   - Break tasks into 25-minute segments\n   - Take regular breaks\n\n### Key Success Factors\n- Maintain a healthy work-life balance\n- Set realistic milestone goals\n- Track your progress\n- Adjust strategy based on analytics\n\n## Final Thoughts\nBuilding a YouTube channel while working full-time is a marathon, not a sprint. Focus on creating systems that work for your schedule, and remember that steady progress beats sporadic bursts of activity.",category:"YouTube Growth",image_url:"https://64.media.tumblr.com/87c298ec041d4e868c599da5d82d4b94/5f91b894e443a2f8-cb/s2048x3072/668407c19a3a01fa1bb7c8f6efe7e784eabac89f.pnj",featured:!1,published:!0,read_time:8,views:615,likes:0,published_at:"2024-11-07T04:06:29+00:00",created_at:"2024-11-08T04:06:29+00:00",updated_at:"2024-10-31T03:06:29+00:00"}],qr=()=>Kr.filter((e=>e.published)).sort(((e,t)=>{const n=new Date(t.published_at).getTime()-new Date(e.published_at).getTime();return 0!==n?n:new Date(t.created_at).getTime()-new Date(e.created_at).getTime()}
213)),Qr={async getFeaturedPost(){const e=qr();return e.find((e=>"building-my-own-vidiq"===e.slug))||e.find((e=>e.featured))||e[0]||null},async getPosts(e){let{category:t,page:n=1,limit:r=6,searchQuery:o=""}=e;const i=o.trim().toLowerCase();let a=qr();t&&"All"!==t&&(a=a.filter((e=>e.category===t))),i&&(a=a.filter((e=>`${e.title} ${e.content}`.toLowerCase().includes(i))));const l=(n-1)*r,s=l+r;return{posts:a.slice(l,s),total:a.length}},getCategories:async()=>Array.from(new Set(qr().map((e=>e.category)))).sort(((e,t)=>e.localeCompare(t))).map((e=>({id:e,name:e,slug:e.toLowerCase().replace(/\s+/g,"-")}))),getPostBySlug:async e=>qr().find((t=>t.slug===e))||null},Xr=kr.div`
214  padding: 3rem 2rem;
215  max-width: 1200px;
216  margin: 0 auto;
217
218  @media (max-width: 768px) {
219    padding: 1rem 0.85rem 2.75rem;
220  }
221`,Jr=kr.div`
222  margin-bottom: 3rem;
223
224  @media (max-width: 768px) {
225    margin-bottom: 1.25rem;
226  }
227`,Zr=kr.h1`
228  font-size: 2.5rem;
229  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
230  margin-bottom: 1rem;
231
232  @media (max-width: 768px) {
233    font-size: 1.55rem;
234    margin-bottom: 0.45rem;
235  }
236`,eo=kr.p`
237  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
238  font-size: 1.1rem;
239  line-height: 1.6;
240  margin-bottom: 2rem;
241
242  @media (max-width: 768px) {
243    font-size: 0.82rem;
244    line-height: 1.35;
245    margin-bottom: 0.9rem;
246    max-width: 24rem;
247  }
248`,to=kr.div`
249  display: flex;
250  gap: 1rem;
251  margin-bottom: 2rem;
252  flex-wrap: wrap;
253
254  @media (max-width: 768px) {
255    display: none;
256  }
257`,no=kr.button`
258  background: ${e=>{let{theme:t,active:n}=e;return n?t.colors.blue4:t.colors.blue3}};
259  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
260  padding: 0.5rem 1rem;
261  border-radius: 8px;
262  font-size: 0.9rem;
263  border: none;
264  cursor: pointer;
265  white-space: nowrap;
266  transition: all 0.2s ease;
267      font-family: 'Poppins', sans-serif;
268
269  &:hover {
270    background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
271  }
272`,ro=kr.div`
273  display: none;
274
275  @media (max-width: 768px) {
276    display: grid;
277    gap: 0.35rem;
278  }
279`,oo=kr.label`
280  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
281  font-size: 0.72rem;
282  font-weight: 700;
283`,io=kr.select`
284  width: 100%;
285  min-height: 44px;
286  appearance: none;
287  background:
288    linear-gradient(45deg, transparent 50%, ${e=>{let{theme:t}=e;return t.colors.blue10}} 50%) right 0.85rem center / 5px 5px no-repeat,
289    linear-gradient(135deg, ${e=>{let{theme:t}=e;return t.colors.blue2}}, ${e=>{let{theme:t}=e;return t.colors.blue3}});
290  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
291  border-radius: 8px;
292  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
293  font-family: 'Poppins', sans-serif;
294  font-size: 0.86rem;
295  font-weight: 700;
296  padding: 0.7rem 1.75rem 0.7rem 0.8rem;
297`,ao=kr.div`
298  position: relative;
299  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
300  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
301  border-radius: 16px;
302  overflow: hidden;
303  margin-bottom: 3rem;
304  display: grid;
305  grid-template-columns: 1.2fr 1fr;
306  cursor: pointer;
307  transition: all 0.2s ease;
308  
309  &:hover {
310    transform: translateY(-4px);
311    border-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
312  }
313  
314  @media (max-width: 768px) {
315    grid-template-columns: 1fr;
316    border-color: ${e=>{let{theme:t}=e;return t.colors.blue5}};
317    border-radius: 12px;
318    margin-bottom: 1.25rem;
319    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.18);
320  }
321`,lo=kr.div`
322  position: relative;
323  aspect-ratio: 16/9;
324  background-size: cover;
325  background-position: center;
326  background-color: ${e=>{let{theme:t}=e;return t.colors.blue3}};
327
328  @media (max-width: 768px) {
329    aspect-ratio: 16 / 9;
330  }
331`,so=kr.div`
332  padding: 2rem;
333  display: flex;
334  flex-direction: column;
335
336  @media (max-width: 768px) {
337    padding: 1rem;
338
339    button {
340      margin-top: 0.9rem !important;
341      padding: 0.65rem 0.9rem;
342      font-size: 0.8rem;
343    }
344  }
345`,co=kr.div`
346  display: grid;
347  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
348  gap: 1.5rem;
349  margin-bottom: 3rem;
350
351  @media (max-width: 768px) {
352    grid-template-columns: repeat(2, minmax(0, 1fr));
353    gap: 0.7rem;
354    margin-bottom: 2rem;
355  }
356`,uo=kr.div`
357  position: relative;
358  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
359  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
360  border-radius: 16px;
361  overflow: hidden;
362  transition: all 0.2s ease;
363  cursor: pointer;
364
365  &:hover {
366    transform: translateY(-4px);
367    border-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
368  }
369
370  @media (max-width: 768px) {
371    border-radius: 10px;
372  }
373`,po=kr.div`
374  width: 100%;
375  aspect-ratio: 16/9;
376  background-size: cover;
377  background-position: center;
378  background-color: ${e=>{let{theme:t}=e;return t.colors.blue3}};
379
380  @media (max-width: 768px) {
381    aspect-ratio: 4 / 3;
382  }
383`,fo=kr.div`
384  padding: 1.5rem;
385
386  @media (max-width: 768px) {
387    padding: 0.65rem;
388  }
389`,mo=kr.span`
390  background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
391  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
392  padding: 0.25rem 0.75rem;
393  border-radius: 6px;
394  font-size: 0.8rem;
395  font-weight: 500;
396  display: inline-block;
397  margin-bottom: 1rem;
398
399  @media (max-width: 768px) {
400    border-radius: 4px;
401    font-size: 0.58rem;
402    line-height: 1.1;
403    margin-bottom: 0.45rem;
404    max-width: 100%;
405    overflow: hidden;
406    padding: 0.22rem 0.42rem;
407    text-overflow: ellipsis;
408    white-space: nowrap;
409  }
410`,ho=kr.h2`
411  font-size: 1.5rem;
412  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
413  margin-bottom: 0.75rem;
414  font-weight: 600;
415  line-height: 1.3;
416
417  ${ao} & {
418    @media (max-width: 768px) {
419      font-size: 1.12rem;
420      line-height: 1.25;
421      margin-bottom: 0.7rem;
422    }
423  }
424
425  @media (max-width: 768px) {
426    font-size: 0.86rem;
427    line-height: 1.2;
428    margin-bottom: 0.65rem;
429  }
430`,go=kr.p`
431  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
432  font-size: 0.9rem;
433  line-height: 1.6;
434  margin-bottom: 1.5rem;
435
436  ${ao} & {
437    @media (max-width: 768px) {
438      display: -webkit-box;
439      font-size: 0.78rem;
440      line-height: 1.35;
441      margin-bottom: 0.75rem;
442      overflow: hidden;
443      -webkit-box-orient: vertical;
444      -webkit-line-clamp: 2;
445    }
446  }
447
448  @media (max-width: 768px) {
449    display: none;
450  }
451`,bo=kr.div`
452  display: flex;
453  align-items: center;
454  gap: 1rem;
455  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
456  font-size: 0.85rem;
457
458  @media (max-width: 768px) {
459    gap: 0.35rem;
460    font-size: 0.62rem;
461    line-height: 1.2;
462    margin-top: 0.15rem;
463  }
464`,vo=kr.div`
465  display: flex;
466  justify-content: center;
467  align-items: center;
468  min-height: 300px;
469  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
470  font-size: 1.1rem;
471`,yo=kr.div`
472  display: flex;
473  flex-direction: column;
474  justify-content: center;
475  align-items: center;
476  gap: 1rem;
477  min-height: 300px;
478  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
479  text-align: center;
480
481  div {
482    font-size: 1.1rem;
483  }
484`,xo=kr.div`
485  grid-column: 1 / -1;
486  display: flex;
487  justify-content: center;
488  align-items: center;
489  min-height: 200px;
490  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
491  text-align: center;
492  font-size: 1.1rem;
493`,wo=kr.span`
494  position: absolute;
495  top: 12px;
496  right: 12px;
497  background: ${e=>{let{theme:t}=e;return t.colors.blue5}};
498  color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
499  padding: 0.25rem 0.75rem;
500  border-radius: 6px;
501  font-size: 0.8rem;
502  font-weight: 500;
503  display: inline-flex;
504  align-items: center;
505  gap: 0.25rem;
506  z-index: 2; /* Keep it above other elements */
507  
508  i {
509    font-size: 1rem;
510  }
511
512  @media (max-width: 768px) {
513    top: 8px;
514    right: 8px;
515    font-size: 0;
516    padding: 0.35rem;
517
518    i {
519      font-size: 0.85rem;
520    }
521  }
522`,Eo=kr.div`
523  position: absolute;
524  left: 1rem;
525  top: 1rem;
526  z-index: 2;
527  background: rgba(15, 17, 19, 0.78);
528  border: 1px solid rgba(250, 252, 255, 0.14);
529  border-radius: 999px;
530  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
531  font-size: 0.72rem;
532  font-weight: 800;
533  letter-spacing: 0.08em;
534  padding: 0.42rem 0.68rem;
535  text-transform: uppercase;
536
537  @media (max-width: 768px) {
538    left: 0.65rem;
539    top: 0.65rem;
540    font-size: 0.66rem;
541    padding: 0.34rem 0.52rem;
542  }
543`,_o="https://austindavenport.com",ko=`${_o}/social-preview.png`,To=(e,t,n)=>{const r=document.querySelector(e);r&&r.setAttribute(t,n)},Co=e=>{let{title:t,description:n,path:r,image:i=ko}=e;(0,o.useEffect)((()=>{const e=`${_o}${r}`;document.title=t,To('meta[name="description"]',"content",n),To('link[rel="canonical"]',"href",e),To('meta[property="og:url"]',"content",e),To('meta[property="og:title"]',"content",t),To('meta[property="og:description"]',"content",n),To('meta[property="og:image"]',"content",i),To('meta[name="twitter:title"]',"content",t),To('meta[name="twitter:description"]',"content",n),To('meta[name="twitter:image"]',"content",i)}),[t,n,r,i])},So=()=>{const e=ne(),[t,n]=(0,o.useState)(!0),[r,i]=(0,o.useState)(null),[a,l]=(0,o.useState)(null),[s,c]=(0,o.useState)([]),[u,d]=(0,o.useState)([]),[p,f]=(0,o.useState)("All"),[m,h]=(0,o.useState)(1);Co({title:"Blog | Austin Davenport",description:"Austin Davenport blog posts on video editing, creator workflows, YouTube growth, software builds, AI, and productivity.",path:"/blog"}),(0,o.useEffect)((()=>{g()}),[]),(0,o.useEffect)((()=>{b()}),[p,m]);const g=async()=>{try{n(!0),i(null);
543const[e,t]=await Promise.all([Qr.getFeaturedPost().catch((()=>null)),Qr.getCategories().catch((()=>[]))]);l(e),d(t)}catch{i("Failed to load blog data. Please try again later.")}finally{n(!1)}},b=async()=>{try{n(!0),i(null);const{posts:e}=await Qr.getPosts({category:"All"===p?void 0:p,page:m,limit:50});c(e)}catch{i("Failed to load blog posts. Please try again later.")}finally{n(!1)}},v=e=>{f(e),h(1)},y=t=>{e(`/blog/${t}`)},x=e=>{try{return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"numeric"}).format(new Date(e))}catch{return e}};return t?(0,$r.jsx)(Xr,{children:(0,$r.jsx)(vo,{children:(0,$r.jsx)("div",{children:"Loading blog posts..."})})}):r?(0,$r.jsx)(Xr,{children:(0,$r.jsxs)(yo,{children:[(0,$r.jsx)("div",{children:r}),(0,$r.jsx)(Wr,{onClick:()=>window.location.reload(),children:"Try Again"})]})}):(0,$r.jsxs)(Xr,{children:[(0,$r.jsxs)(Jr,{children:[(0,$r.jsx)(Zr,{children:"Blog"}),(0,$r.jsx)(eo,{children:"Tips, tutorials, and insights on content creation, YouTube growth, and building your online presence."}),(0,$r.jsxs)(ro,{children:[(0,$r.jsx)(oo,{htmlFor:"blog-category",children:"Filter"}),(0,$r.jsxs)(io,{id:"blog-category",value:p,onChange:e=>v(e.target.value),children:[(0,$r.jsx)("option",{value:"All",children:"All Posts"}),u.map((e=>(0,$r.jsx)("option",{value:e.name,children:e.name},e.id)))]})]}),(0,$r.jsxs)(to,{children:[(0,$r.jsx)(no,{active:"All"===p,onClick:()=>v("All"),"aria-pressed":"All"===p,children:"All Posts"}),u.map((e=>(0,$r.jsx)(no,{active:p===e.name,onClick:()=>v(e.name),"aria-pressed":p===e.name,children:e.name},e.id)))]})]}),a&&"All"===p&&(0,$r.jsxs)(ao,{onClick:()=>y(a.slug),children:[(0,$r.jsx)(lo,{style:{backgroundImage:`url(${a.image_url})`},children:(0,$r.jsx)(Eo,{children:"Featured Article"})}),(0,$r.jsxs)(so,{children:[(0,$r.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,$r.jsx)(mo,{children:a.category}),a.html_code&&(0,$r.jsxs)(wo,{children:[(0,$r.jsx)("i",{className:"bx bx-code-alt"}),"Interactive"]})]}),(0,$r.jsx)(ho,{children:a.title}),(0,$r.jsx)(go,{children:a.excerpt}),(0,$r.jsxs)(bo,{children:[(0,$r.jsx)("span",{children:x(a.published_at)}),(0,$r.jsx)("span",{children:"\u2022"}),(0,$r.jsxs)("span",{children:[a.read_time," min read"]})]}),(0,$r.jsx)(Wr,{icon:"bx bx-right-arrow-alt",style:{marginTop:"1.5rem"},children:"Read Article"})]})]}),(0,$r.jsx)(co,{children:s.length>0?s.map((e=>(0,$r.jsxs)(uo,{onClick:()=>y(e.slug),children:[(0,$r.jsx)(po,{style:{backgroundImage:`url(${e.image_url})`}}),(0,$r.jsxs)(fo,{children:[(0,$r.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,$r.jsx)(mo,{children:e.category}),e.html_code&&(0,$r.jsxs)(wo,{children:[(0,$r.jsx)("i",{className:"bx bx-code-alt"}),"Interactive"]})]}),(0,$r.jsx)(ho,{children:e.title}),(0,$r.jsx)(go,{children:e.excerpt}),(0,$r.jsxs)(bo,{children:[(0,$r.jsx)("span",{children:x(e.published_at)}),(0,$r.jsx)("span",{children:"\u2022"}),(0,$r.jsxs)("span",{children:[e.read_time," min read"]})]})]})]},e.id))):(0,$r.jsx)(xo,{children:(0,$r.jsx)("div",{children:"No posts found in this category."})})})]})};const Po=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Ao=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Ro={};function Io(e,t){return((t||Ro).jsx?Ao:Po).test(e)}const Lo=/[ \t\n\f\r]/g;function Oo(e){return""===e.replace(Lo,"")}class jo{constructor(e,t,n){this.property=e,this.normal=t,n&&(this.space=n)}}function zo(e,t){const n={},r={};let o=-1;for(;++o<e.length;)Object.assign(n,e[o].property),Object.assign(r,e[o].normal);return new jo(n,r,t)}function No(e){return e.toLowerCase()}jo.prototype.property={},jo.prototype.normal={},jo.prototype.space=null;class Mo{constructor(e,t){this.property=e,this.attribute=t}}Mo.prototype.space=null,Mo.prototype.boolean=!1,Mo.prototype.booleanish=!1,Mo.prototype.overloadedBoolean=!1,Mo.prototype.number=!1,Mo.prototype.commaSeparated=!1,Mo.prototype.spaceSeparated=!1,Mo.prototype.commaOrSpaceSeparated=!1,Mo.prototype.mustUseProperty=!1,Mo.prototype.defined=!1;let Do=0;const Uo=Yo(),Fo=Yo(),$o=Yo(),Vo=Yo(),Bo=Yo(),Ho=Yo(),Go=Yo();function Yo(){return 2**++Do}const Wo=Object.keys(e);class Ko extends Mo{constructor(t,n,r,o){let i=-1;
vendor: 4,772 bytes, line 543
543if(super(t,n),qo(this,"space",o),"number"===typeof r)for(;++i<Wo.length;){const t=Wo[i];qo(this,Wo[i],(r&e[t])===e[t])}}}function qo(e,t,n){n&&(e[t]=n)}Ko.prototype.defined=!0;const Qo={}.hasOwnProperty;function Xo(e){const t={},n={};let r;for(r in e.properties)if(Qo.call(e.properties,r)){const o=e.properties[r],i=new Ko(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[No(r)]=r,n[No(i.attribute)]=r}return new jo(t,n,e.space)}const Jo=Xo({space:"xlink",transform:(e,t)=>"xlink:"+t.slice(5).toLowerCase(),properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null}}),Zo=Xo({space:"xml",transform:(e,t)=>"xml:"+t.slice(3).toLowerCase(),properties:{xmlLang:null,xmlBase:null,xmlSpace:null}});function ei(e,t){return t in e?e[t]:t}function ti(e,t){return ei(e,t.toLowerCase())}const ni=Xo({space:"xmlns",attributes:{xmlnsxlink:"xmlns:xlink"},transform:ti,properties:{xmlns:null,xmlnsXLink:null}}),ri=Xo({transform:(e,t)=>"role"===t?t:"aria-"+t.slice(4).toLowerCase(),properties:{ariaActiveDescendant:null,ariaAtomic:Fo,ariaAutoComplete:null,ariaBusy:Fo,ariaChecked:Fo,ariaColCount:Vo,ariaColIndex:Vo,ariaColSpan:Vo,ariaControls:Bo,ariaCurrent:null,ariaDescribedBy:Bo,ariaDetails:null,ariaDisabled:Fo,ariaDropEffect:Bo,ariaErrorMessage:null,ariaExpanded:Fo,ariaFlowTo:Bo,ariaGrabbed:Fo,ariaHasPopup:null,ariaHidden:Fo,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Bo,ariaLevel:Vo,ariaLive:null,ariaModal:Fo,ariaMultiLine:Fo,ariaMultiSelectable:Fo,ariaOrientation:null,ariaOwns:Bo,ariaPlaceholder:null,ariaPosInSet:Vo,ariaPressed:Fo,ariaReadOnly:Fo,ariaRelevant:null,ariaRequired:Fo,ariaRoleDescription:Bo,ariaRowCount:Vo,ariaRowIndex:Vo,ariaRowSpan:Vo,ariaSelected:Fo,ariaSetSize:Vo,ariaSort:null,ariaValueMax:Vo,ariaValueMin:Vo,ariaValueNow:Vo,ariaValueText:null,role:null}}),oi=Xo({space:"html",attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},transform:ti,mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Ho,acceptCharset:Bo,accessKey:Bo,action:null,allow:null,allowFullScreen:Uo,allowPaymentRequest:Uo,allowUserMedia:Uo,alt:null,as:null,async:Uo,autoCapitalize:null,autoComplete:Bo,autoFocus:Uo,autoPlay:Uo,blocking:Bo,capture:null,charSet:null,checked:Uo,cite:null,className:Bo,cols:Vo,colSpan:null,content:null,contentEditable:Fo,controls:Uo,controlsList:Bo,coords:Vo|Ho,crossOrigin:null,data:null,dateTime:null,decoding:null,default:Uo,defer:Uo,dir:null,dirName:null,disabled:Uo,download:$o,draggable:Fo,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:Uo,formTarget:null,headers:Bo,height:Vo,hidden:Uo,high:Vo,href:null,hrefLang:null,htmlFor:Bo,httpEquiv:Bo,id:null,imageSizes:null,imageSrcSet:null,inert:Uo,inputMode:null,integrity:null,is:null,isMap:Uo,itemId:null,itemProp:Bo,itemRef:Bo,itemScope:Uo,itemType:Bo,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:Uo,low:Vo,manifest:null,max:null,maxLength:Vo,media:null,method:null,min:null,minLength:Vo,multiple:Uo,muted:Uo,name:null,nonce:null,noModule:Uo,noValidate:Uo,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:Uo,optimum:Vo,pattern:null,ping:Bo,placeholder:null,playsInl
543ine:Uo,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:Uo,referrerPolicy:null,rel:Bo,required:Uo,reversed:Uo,rows:Vo,rowSpan:Vo,sandbox:Bo,scope:null,scoped:Uo,seamless:Uo,selected:Uo,shadowRootClonable:Uo,shadowRootDelegatesFocus:Uo,shadowRootMode:null,shape:null,size:Vo,sizes:null,slot:null,span:Vo,spellCheck:Fo,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Vo,step:null,style:null,tabIndex:Vo,target:null,title:null,translate:null,type:null,typeMustMatch:Uo,useMap:null,value:Fo,width:Vo,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Bo,axis:null,background:null,bgColor:null,border:Vo,borderColor:null,bottomMargin:Vo,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:Uo,declare:Uo,event:null,face:null,frame:null,frameBorder:null,hSpace:Vo,leftMargin:Vo,link:null,longDesc:null,lowSrc:null,marginHeight:Vo,marginWidth:Vo,noResize:Uo,noHref:Uo,noShade:Uo,noWrap:Uo,object:null,profile:null,prompt:null,rev:null,rightMargin:Vo,rules:null,scheme:null,scrolling:Fo,standby:null,summary:null,text:null,topMargin:Vo,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Vo,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:Uo,disableRemotePlayback:Uo,prefix:null,property:null,results:Vo,security:null,unselectable:null}}),ii=Xo({space:"svg",attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav
543-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},transform:ei,properties:{about:Go,accentHeight:Vo,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Vo,amplitude:Vo,arabicForm:null,ascent:Vo,attributeName:null,attributeType:null,azimuth:Vo,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Vo,by:null,calcMode:null,capHeight:Vo,className:Bo,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:Vo,diffuseConstant:Vo,direction:null,display:null,dur:null,divisor:Vo,dominantBaseline:null,download:Uo,dx:null,dy:null,edgeMode:null,editable:null,elevation:Vo,enableBackground:null,end:null,event:null,exponent:Vo,externalResourcesRequired:null,fill:null,fillOpacity:Vo,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:Ho,g2:Ho,glyphName:Ho,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Vo,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Vo,horizOriginX:Vo,horizOriginY:Vo,id:null,ideographic:Vo,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Vo,k:Vo,k1:Vo,k2:Vo,k3:Vo,k4:Vo,kernelMatrix:Go,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Vo,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:Vo,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,on
543Zoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:Vo,overlineThickness:Vo,paintOrder:null,panose1:null,path:null,pathLength:Vo,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Bo,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Vo,pointsAtY:Vo,pointsAtZ:Vo,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Go,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Go,rev:Go,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Go,requiredFeatures:Go,requiredFonts:Go,requiredFormats:Go,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:Vo,specularExponent:Vo,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Vo,strikethroughThickness:Vo,string:null,stroke:null,strokeDashArray:Go,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Vo,strokeOpacity:Vo,strokeWidth:null,style:null,surfaceScale:Vo,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Go,tabIndex:Vo,tableValues:null,target:null,targetX:Vo,targetY:Vo,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Go,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Vo,underlineThickness:Vo,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Vo,values:null,vAlphabetic:Vo,vMathematical:Vo,vectorEffect:null,vHanging:Vo,vIdeographic:Vo,version:null,vertAdvY:Vo,vertOriginX:Vo,vertOriginY:Vo,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Vo,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null}}),ai=zo([Zo,Jo,ni,ri,oi],"html"),li=zo([Zo,Jo,ni,ri,ii],"svg"),si=/^data[-\w.:]+$/i,ci=/-[a-z]/g,ui=/[A-Z]/g;function di(e){return"-"+e.toLowerCase()}function pi(e){return e.charAt(1).toUpperCase()}const fi={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"};var mi=n(222);const hi=mi.default||mi,gi=vi("end"),bi=vi("start");function vi(e){return function(t){const n=t&&t.position&&t.position[e]||{};if("number"===typeof n.line&&n.line>0&&"number"===typeof n.column&&n.column>0)return{line:n.line,column:n.column,offset:"number"===typeof n.offset&&n.offset>-1?n.offset:void 0}}}function yi(e){return e&&"object"===typeof e?"position"in e||"type"in e?wi(e.position):"start"in e||"end"in e?wi(e):"line"in e||"column"in e?xi(e):"":""}function xi(e){return Ei(e&&e.line)+":"+Ei(e&&e.column)}function wi(e){return xi(e&&e.start)+"-"+xi(e&&e.end)}function Ei(e){return e&&"number"===typeof e?e:1}class _i extends Error{constructor(e,t,n){super(),"string"===typeof t&&(n=t,t=void 0);let r="",o={},i=!1;if(t&&(o="line"in t&&"column"in t||"start"in t&&"end"in t?{place:t}:"type"in t?{ancestors:[t],place:t.position}:{...t}),"string"===typeof e?r=e:!o.cause&&e&&(i=!0,r=e.message,o.cause=e),!o.ruleId&&!o.source&&"string"===typeof n){const e=n.indexOf(":");-1===e?o.ruleId=n:(o.source=n.slice(0,e),o.ruleId=n.slice(e+1))}if(!o.place&&o.ancestors&&o.ancestors){const e=o.ancestors[o.ancestors.length-1];e&&(o.place=e.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file,this.message=r,this.line=a?a.line:void 0,this.name=yi(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=i&&o.cause&&"string"===typeof o.cause.stack?o.cause.stack:"",this.actual,this.expected,this.note,this.url}}_i.prototype.file="",_i.prototype.name="",_i.prototype.reason="",_i.prototype.message="",_i.prototype.stack="",_i.prototype.column=void 0,_i.prototype.line=void 0,_i.prototype.ancestors=void 0,_i.prototype.cause=void 0,_i.prototype.fatal=void 0,_i.prototype.place=void 0,_i.prototype.ruleId=void 0,_i.prototype.source=void 0;const ki={}.hasOwnProperty,Ti=new Map,Ci=/[A-Z]/g,Si=/-([a-z])/g,Pi=new Set(["table","tbody","thead","tfoot","tr"]),Ai=new Set(["td","th"]),Ri="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Ii(e,t){if(!t||void 0===t.Fragment)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if("function"!==typeof t.jsxDEV)throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=function(e,t){return n;function n(n,r,o,i){const a=Array.isArray(o.children),l=bi(n);return t(r,o,i,a,{columnNumber:l?l.column-1:void 0,fileName:e,lineNumber:l?l.line:void 0},void 0)}}(n,t.jsxDEV)}else{if("function"!==typeof t.jsx)throw new TypeError("Expected `jsx` in production options");
vendor: 9,615 bytes, line 543
543if("function"!==typeof t.jsxs)throw new TypeError("Expected `jsxs` in production options");r=function(e,t,n){return r;function r(e,r,o,i){const a=Array.isArray(o.children)?n:t;return i?a(r,o,i):a(r,o)}}(0,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:!1!==t.passKeys,passNode:t.passNode||!1,schema:"svg"===t.space?li:ai,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:!1!==t.tableCellAlignToStyle},i=Li(o,e,void 0);return i&&"string"!==typeof i?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function Li(e,t,n){return"element"===t.type?function(e,t,n){const r=e.schema;let o=r;"svg"===t.tagName.toLowerCase()&&"html"===r.space&&(o=li,e.schema=o);e.ancestors.push(t);const i=Mi(e,t.tagName,!1),a=function(e,t){const n={};let r,o;for(o in t.properties)if("children"!==o&&ki.call(t.properties,o)){const i=Ni(e,o,t.properties[o]);if(i){const[o,a]=i;e.tableCellAlignToStyle&&"align"===o&&"string"===typeof a&&Ai.has(t.tagName)?r=a:n[o]=a}}if(r){(n.style||(n.style={}))["css"===e.stylePropertyNameCase?"text-align":"textAlign"]=r}return n}(e,t);let l=zi(e,t);Pi.has(t.tagName)&&(l=l.filter((function(e){return"string"!==typeof e||!("object"===typeof(t=e)?"text"===t.type&&Oo(t.value):Oo(t));var t})));return Oi(e,a,i,t),ji(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}(e,t,n):"mdxFlowExpression"===t.type||"mdxTextExpression"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater){const n=t.data.estree.body[0];return n.type,e.evaluater.evaluateExpression(n.expression)}Di(e,t.position)}(e,t):"mdxJsxFlowElement"===t.type||"mdxJsxTextElement"===t.type?function(e,t,n){const r=e.schema;let o=r;"svg"===t.name&&"html"===r.space&&(o=li,e.schema=o);e.ancestors.push(t);const i=null===t.name?e.Fragment:Mi(e,t.name,!0),a=function(e,t){const n={};for(const r of t.attributes)if("mdxJsxExpressionAttribute"===r.type)if(r.data&&r.data.estree&&e.evaluater){const t=r.data.estree.body[0];t.type;const o=t.expression;o.type;const i=o.properties[0];i.type,Object.assign(n,e.evaluater.evaluateExpression(i.argument))}else Di(e,t.position);else{const o=r.name;let i;if(r.value&&"object"===typeof r.value)if(r.value.data&&r.value.data.estree&&e.evaluater){const t=r.value.data.estree.body[0];t.type,i=e.evaluater.evaluateExpression(t.expression)}else Di(e,t.position);else i=null===r.value||r.value;n[o]=i}return n}(e,t),l=zi(e,t);return Oi(e,a,i,t),ji(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}(e,t,n):"mdxjsEsm"===t.type?function(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);Di(e,t.position)}(e,t):"root"===t.type?function(e,t,n){const r={};return ji(r,zi(e,t)),e.create(t,e.Fragment,r,n)}(e,t,n):"text"===t.type?function(e,t){return t.value}(0,t):void 0}function Oi(e,t,n,r){"string"!==typeof n&&n!==e.Fragment&&e.passNode&&(t.node=r)}function ji(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function zi(e,t){const n=[];let r=-1;const o=e.passKeys?new Map:Ti;for(;++r<t.children.length;){const i=t.children[r];let a;if(e.passKeys){const e="element"===i.type?i.tagName:"mdxJsxFlowElement"===i.type||"mdxJsxTextElement"===i.type?i.name:void 0;if(e){const t=o.get(e)||0;a=e+"-"+t,o.set(e,t+1)}}const l=Li(e,i,a);void 0!==l&&n.push(l)}return n}function Ni(e,t,n){const r=function(e,t){const n=No(t);let r=t,o=Mo;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&"data"===n.slice(0,4)&&si.test(t)){if("-"===t.charAt(4)){const e=t.slice(5).replace(ci,pi);r="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{const e=t.slice(4);if(!ci.test(e)){let n=e.replace(ui,di);"-"!==n.charAt(0)&&(n="-"+n),t="data"+n}}o=Ko}return new o(r,t)}(e.schema,t);if(!(null===n||void 0===n||"number"===typeof n&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?function(e,t){const n=t||{};return(""===e[e.length-1]?[...e,""]:e).join((n.padRight?" ":"")+","+(!1===n.padLeft?"":" ")).trim()}(n):n.join(" ").trim()),"style"===r.property){let t="object"===typeof n?n:function(e,t){const n={};try{hi(t,r)}catch(o){if(!e.ignoreInvalidStyle){const t=o,n=new _i("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:t,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Ri+"#cannot-parse-style-attribute",n}}return n;function r(e,t){let r=e;"--"!==r.slice(0,2)&&("-ms-"===r.slice(0,4)&&(r="ms-"+r.slice(4)),r=r.replace(Si,Fi)),n[r]=t}}(e,String(n));return"css"===e.stylePropertyNameCase&&(t=function(e){const t={};let n;for(n in e)ki.call(e,n)&&(t[Ui(n)]=e[n]);return t}(t)),["style",t]}return["react"===e.elementAttributeNameCase&&r.space?fi[r.property]||r.property:r.attribute,n]}}function Mi(e,t,n){let r;if(n)if(t.includes(".")){const e=t.split(".");let n,o=-1;for(;++o<e.length;){const t=Io(e[o])?{type:"Identifier",name:e[o]}:{type:"Literal",value:e[o]};n=n?{type:"MemberExpression",object:n,property:t,computed:Boolean(o&&"Literal"===t.type),optional:!1}:t}r=n}else r=Io(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};else r={type:"Literal",value:t};if("Literal"===r.type){const t=r.value;return ki.call(e.components,t)?e.components[t]:t}if(e.evaluater)return e.evaluater.evaluateExpression(r);Di(e)}function Di(e,t){const n=new _i("Cannot handle MDX estrees without `createEvaluater`",{ancestors:e.ancestors,place:t,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw n.file=e.filePath||void 0,n.url=Ri+"#cannot-handle-mdx-estrees-without-createevaluater",n}function Ui(e){let t=e.replace(Ci,$i);return"ms-"===t.slice(0,3)&&(t="-"+t),t}function Fi(e,t){return t.toUpperCase()}function $i(e){return"-"+e.toLowerCase()}const Vi={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},Bi={};function Hi(e,t,n){if(function(e){return Boolean(e&&"object"===typeof e)}(e)){if("value"in e)return"html"!==e.type||n?e.value:"";if(t&&"alt"in e&&e.alt)return e.alt;if("children"in e)return Gi(e.children,t,n)}return Array.isArray(e)?Gi(e,t,n):""}function Gi(e,t,n){const r=[];let o=-1;for(;++o<e.length;)r[o]=Hi(e[o],t,n);return r.join("")}function Yi(e,t,n,r){const o=e.length;let i,a=0;if(t=t<0?-t>o?0:o+t:t>o?o:t,n=n>0?n:0,r.length<1e4)i=Array.from(r),i.unshift(t,n),e.splice(...i);else for(n&&e.splice(t,n);a<r.length;)i=r.slice(a,a+1e4),i.unshift(t,0),e.splice(...i),a+=1e4,t+=1e4}function Wi(e,t){return e.length>0?(Yi(e,e.length,0,t),e):t}class Ki{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){const n=null===t||void 0===t?Number.POSITIVE_INFINITY:t;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){const r=t||0;this.setCursor(Math.trunc(e));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return n&&qi(this.left,n),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),qi(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),qi(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&0===this.right.length||e<0&&0===this.left.length))if(e<this.left.length){const t=this.left.splice(e,Number.POSITIVE_INFINITY);qi(this.right,t.reverse())}else{const t=this.right.splice(this.left.length+this.right.length-e,Number.POSITIVE_INFINITY);qi(this.left,t.reverse())}}}function qi(e,t){let n=0;if(t.length<1e4)e.push(...t);else for(;n<t.length;)e.push(...t.slice(n,n+1e4)),n+=1e4}function Qi(e){const t={};let n,r,o,i,a,l,s,c=-1;const u=new Ki(e);for(;++c<u.length;){for(;c in t;)c=t[c];if(n=u.get(c),c&&"chunkFlow"===n[1].type&&"listItemPrefix"===u.get(c-1)[1].type&&(l=n[1]._tokenizer.events,o=0,o<l.length&&"lineEndingBlank"===l[o][1].type&&(o+=2),o<l.length&&"content"===l[o][1].type))for(;++o<l.length&&"content"!==l[o][1].type;)"chunkText"===l[o][1].type&&(l[o][1]._isInFirstContentOfListItem=!0,o++);if("enter"===n[0])n[1].contentType&&(Object.assign(t,Xi(u,c)),c=t[c],s=!0);else if(n[1]._container){for(o=c,r=void 0;o--&&(i=u.get(o),"lineEnding"===i[1].type||"lineEndingBlank"===i[1].type);)"enter"===i[0]&&(r&&(u.get(r)[1].type="lineEndingBlank"),i[1].type="lineEnding",r=o);r&&(n[1].end=Object.assign({},u.get(r)[1].start),a=u.slice(r,c),a.unshift(n),u.splice(r,c-r+1,a))}}return Yi(e,0,Number.POSITIVE_INFINITY,u.slice(0)),!s}function Xi(e,t){const n=e.get(t)[1],r=e.get(t)[2];let o=t-1;const i=[],a=n._tokenizer||r.parser[n.contentType](n.start),l=a.events,s=[],c={};let u,d,p=-1,f=n,m=0,h=0;const g=[h];for(;f;){for(;e.get(++o)[1]!==f;);i.push(o),f._tokenizer||(u=r.sliceStream(f),f.next||u.push(null),d&&a.defineSki
vendor: 8,740 bytes, line 543
543p(f.start),f._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(u),f._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),d=f,f=f.next}for(f=n;++p<l.length;)"exit"===l[p][0]&&"enter"===l[p-1][0]&&l[p][1].type===l[p-1][1].type&&l[p][1].start.line!==l[p][1].end.line&&(h=p+1,g.push(h),f._tokenizer=void 0,f.previous=void 0,f=f.next);for(a.events=[],f?(f._tokenizer=void 0,f.previous=void 0):g.pop(),p=g.length;p--;){const t=l.slice(g[p],g[p+1]),n=i.pop();s.push([n,n+t.length-1]),e.splice(n,2,t)}for(s.reverse(),p=-1;++p<s.length;)c[m+s[p][0]]=m+s[p][1],m+=s[p][1]-s[p][0]-1;return c}const Ji={}.hasOwnProperty;function Zi(e,t){let n;for(n in t){const r=(Ji.call(e,n)?e[n]:void 0)||(e[n]={}),o=t[n];let i;if(o)for(i in o){Ji.call(r,i)||(r[i]=[]);const e=o[i];ea(r[i],Array.isArray(e)?e:e?[e]:[])}}}function ea(e,t){let n=-1;const r=[];for(;++n<t.length;)("after"===t[n].add?e:r).push(t[n]);Yi(e,0,0,r)}const ta=fa(/[A-Za-z]/),na=fa(/[\dA-Za-z]/),ra=fa(/[#-'*+\--9=?A-Z^-~]/);function oa(e){return null!==e&&(e<32||127===e)}const ia=fa(/\d/),aa=fa(/[\dA-Fa-f]/),la=fa(/[!-/:-@[-`{-~]/);function sa(e){return null!==e&&e<-2}function ca(e){return null!==e&&(e<0||32===e)}function ua(e){return-2===e||-1===e||32===e}const da=fa(/\p{P}|\p{S}/u),pa=fa(/\s/);function fa(e){return function(t){return null!==t&&t>-1&&e.test(String.fromCharCode(t))}}function ma(e,t,n,r){const o=r?r-1:Number.POSITIVE_INFINITY;let i=0;return function(r){if(ua(r))return e.enter(n),a(r);return t(r)};function a(r){return ua(r)&&i++<o?(e.consume(r),a):(e.exit(n),t(r))}}const ha={tokenize:function(e){const t=e.attempt(this.parser.constructs.contentInitial,(function(n){if(null===n)return void e.consume(n);return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),ma(e,t,"linePrefix")}),(function(t){return e.enter("paragraph"),r(t)}));let n;return t;function r(t){const r=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=r),n=r,o(t)}function o(t){return null===t?(e.exit("chunkText"),e.exit("paragraph"),void e.consume(t)):sa(t)?(e.consume(t),e.exit("chunkText"),r):(e.consume(t),o)}}};const ga={tokenize:function(e){const t=this,n=[];let r,o,i,a=0;return l;function l(r){if(a<n.length){const o=n[a];return t.containerState=o[1],e.attempt(o[0].continuation,s,c)(r)}return c(r)}function s(e){if(a++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,r&&v();const n=t.events.length;let o,i=n;for(;i--;)if("exit"===t.events[i][0]&&"chunkFlow"===t.events[i][1].type){o=t.events[i][1].end;break}b(a);let l=n;for(;l<t.events.length;)t.events[l][1].end=Object.assign({},o),l++;return Yi(t.events,i+1,0,t.events.slice(n)),t.events.length=l,c(e)}return l(e)}function c(o){if(a===n.length){if(!r)return p(o);if(r.currentConstruct&&r.currentConstruct.concrete)return m(o);t.interrupt=Boolean(r.currentConstruct&&!r._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(ba,u,d)(o)}function u(e){return r&&v(),b(a),p(e)}function d(e){return t.parser.lazy[t.now().line]=a!==n.length,i=t.now().offset,m(e)}function p(n){return t.containerState={},e.attempt(ba,f,m)(n)}function f(e){return a++,n.push([t.currentConstruct,t.containerState]),p(e)}function m(n){return null===n?(r&&v(),b(0),void e.consume(n)):(r=r||t.parser.flow(t.now()),e.enter("chunkFlow",{contentType:"flow",previous:o,_tokenizer:r}),h(n))}function h(n){return null===n?(g(e.exit("chunkFlow"),!0),b(0),void e.consume(n)):sa(n)?(e.consume(n),g(e.exit("chunkFlow")),a=0,t.interrupt=void 0,l):(e.consume(n),h)}function g(e,n){const l=t.sliceStream(e);if(n&&l.push(null),e.previous=o,o&&(o.next=e),o=e,r.defineSkip(e.start),r.write(l),t.parser.lazy[e.start.line]){let e=r.events.length;for(;e--;)if(r.events[e][1].start.offset<i&&(!r.events[e][1].end||r.events[e][1].end.offset>i))return;const n=t.events.length;let o,l,s=n;for(;s--;)if("exit"===t.events[s][0]&&"chunkFlow"===t.events[s][1].type){if(o){l=t.events[s][1].end;break}o=!0}for(b(a),e=n;e<t.events.length;)t.events[e][1].end=Object.assign({},l),e++;Yi(t.events,s+1,0,t.events.slice(n)),t.events.length=e}}function b(r){let o=n.length;for(;o-- >r;){const r=n[o];t.containerState=r[1],r[0].exit.call(t,e)}n.length=r}function v(){r.write([null]),o=void 0,r=void 0,t.containerState._closeFlow=void 0}}},ba={tokenize:function(e,t,n){return ma(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};const va={tokenize:function(e,t,n){return function(t){return ua(t)?ma(e,r,"linePrefix")(t):r(t)};function r(e){return null===e||sa(e)?t(e):n(e)}},partial:!0};const ya={tokenize:function(e,t){let n;return function(t){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),r(t)};function r(t){return null===t?o(t):sa(t)?e.check(xa,i,o)(t):(e.consume(t),r)}function o(n){return e.exit("chunkContent"),e.exit("content"),t(n)}function i(t){return e.consume(t),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,r}},resolve:function(e){return Qi(e),e}},xa={tokenize:function(e,t,n){const r=this;return function(t){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),ma(e,o,"linePrefix")};function o(o){if(null===o||sa(o))return n(o);const i=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}},partial:!0};const wa={tokenize:function(e){const t=this,n=e.attempt(va,(function(r){if(null===r)return void e.consume(r);return e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}),e.attempt(this.parser.constructs.flowInitial,r,ma(e,e.attempt(this.parser.constructs.flow,r,e.attempt(ya,r)),"linePrefix")));return n;function r(r){if(null!==r)return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),t.currentConstruct=void 0,n;e.consume(r)}}};const Ea={resolveAll:Ca()},_a=Ta("string"),ka=Ta("text");function Ta(e){return{tokenize:function(t){const n=this,r=this.parser.constructs[e],o=t.attempt(r,i,a);return i;function i(e){return s(e)?o(e):a(e)}function a(e){if(null!==e)return t.enter("data"),t.consume(e),l;t.consume(e)}function l(e){return s(e)?(t.exit("data"),o(e)):(t.consume(e),l)}function s(e){if(null===e)return!0;const t=r[e];let o=-1;if(t)for(;++o<t.length;){const e=t[o];if(!e.previous||e.previous.call(n,n.previous))return!0}return!1}},resolveAll:Ca("text"===e?Sa:void 0)}}function Ca(e){return function(t,n){let r,o=-1;for(;++o<=t.length;)void 0===r?t[o]&&"data"===t[o][1].type&&(r=o,o++):t[o]&&"data"===t[o][1].type||(o!==r+2&&(t[r][1].end=t[o-1][1].end,t.splice(r+2,o-r-2),o=r+2),r=void 0);return e?e(t,n):t}}function Sa(e,t){let n=0;for(;++n<=e.length;)if((n===e.length||"lineEnding"===e[n][1].type)&&"data"===e[n-1][1].type){const r=e[n-1][1],o=t.sliceStream(r);let i,a=o.length,l=-1,s=0;for(;a--;){const e=o[a];if("string"===typeof e){for(l=e.length;32===e.charCodeAt(l-1);)s++,l--;if(l)break;l=-1}else if(-2===e)i=!0,s++;else if(-1!==e){a++;break}}if(s){const o={type:n===e.length||i||s<2?"lineSuffix":"hardBreakTrailing",start:{line:r.end.line,column:r.end.column-s,offset:r.end.offset-s,_index:r.start._index+a,_bufferIndex:a?l:r.start._bufferIndex+l},end:Object.assign({},r.end)};r.end=Object.assign({},o.start),r.start.offset===r.end.offset?Object.assign(r,o):(e.splice(n,0,["enter",o,t],["exit",o,t]),n+=2)}n++}return e}function Pa(e,t,n){const r=[];let o=-1;for(;++o<e.length;){const i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}function Aa(e,t,n){let r=Object.assign(n?Object.assign({},n):{line:1,column:1,offset:0},{_index:0,_bufferIndex:-1});const o={},i=[];let a=[],l=[],s=!0;const c={consume:function(e){sa(e)?(r.line++,r.column=1,r.offset+=-3===e?2:1,x()):-1!==e&&(r.column++,r.offset++);r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++));u.previous=e,s=!0},enter:function(e,t){const n=t||{};return n.type=e,n.start=m(),u.events.push(["enter",n,u]),l.push(n),n},exit:function(e){const t=l.pop();return t.end=m(),u.events.push(["exit",t,u]),t},attempt:v((function(e,t){y(e,t.from)})),check:v(b),interrupt:v(b,{interrupt:!0})},u={previous:null,code:null,containerState:{},events:[],parser:e,sliceStream:f,sliceSerialize:function(e,t){return function(e,t){let n=-1;const r=[];let o;for(;++n<e.length;){const i=e[n];let a;if("string"===typeof i)a=i;else switch(i){case-5:a="\r";break;case-4:a="\n";break;case-3:a="\r\n";break;case-2:a=t?" ":"\t";break;case-1:if(!t&&o)continue;a=" ";break;default:a=String.fromCharCode(i)}o=-2===i,r.push(a)}return r.join("")}(f(e),t)}
vendor: 3,397 bytes, line 543
543,now:m,defineSkip:function(e){o[e.line]=e.column,x()},write:function(e){if(a=Wi(a,e),h(),null!==a[a.length-1])return[];return y(t,0),u.events=Pa(i,u.events,u),u.events}};let d,p=t.tokenize.call(u,c);return t.resolveAll&&i.push(t),u;function f(e){return function(e,t){const n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex;let a;if(n===o)a=[e[n].slice(r,i)];else{if(a=e.slice(n,o),r>-1){const e=a[0];"string"===typeof e?a[0]=e.slice(r):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}(a,e)}function m(){const{line:e,column:t,offset:n,_index:o,_bufferIndex:i}=r;return{line:e,column:t,offset:n,_index:o,_bufferIndex:i}}function h(){let e;for(;r._index<a.length;){const t=a[r._index];if("string"===typeof t)for(e=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===e&&r._bufferIndex<t.length;)g(t.charCodeAt(r._bufferIndex));else g(t)}}function g(e){s=void 0,d=e,p=p(e)}function b(e,t){t.restore()}function v(e,t){return function(n,o,i){let a,d,p,f;return Array.isArray(n)?h(n):"tokenize"in n?h([n]):function(e){return t;function t(t){const n=null!==t&&e[t],r=null!==t&&e.null;return h([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(r)?r:r?[r]:[]])(t)}}(n);function h(e){return a=e,d=0,0===e.length?i:g(e[d])}function g(e){return function(n){f=function(){const e=m(),t=u.previous,n=u.currentConstruct,o=u.events.length,i=Array.from(l);return{restore:a,from:o};function a(){r=e,u.previous=t,u.currentConstruct=n,u.events.length=o,l=i,x()}}(),p=e,e.partial||(u.currentConstruct=e);if(e.name&&u.parser.constructs.disable.null.includes(e.name))return v(n);return e.tokenize.call(t?Object.assign(Object.create(u),t):u,c,b,v)(n)}}function b(t){return s=!0,e(p,f),o}function v(e){return s=!0,f.restore(),++d<a.length?g(a[d]):i}}}function y(e,t){e.resolveAll&&!i.includes(e)&&i.push(e),e.resolve&&Yi(u.events,t,u.events.length-t,e.resolve(u.events.slice(t),u)),e.resolveTo&&(u.events=e.resolveTo(u.events,u))}function x(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}const Ra={name:"thematicBreak",tokenize:function(e,t,n){let r,o=0;return function(t){return e.enter("thematicBreak"),function(e){return r=e,i(e)}(t)};function i(i){return i===r?(e.enter("thematicBreakSequence"),a(i)):o>=3&&(null===i||sa(i))?(e.exit("thematicBreak"),t(i)):n(i)}function a(t){return t===r?(e.consume(t),o++,a):(e.exit("thematicBreakSequence"),ua(t)?ma(e,i,"whitespace")(t):i(t))}}};const Ia={name:"list",tokenize:function(e,t,n){const r=this,o=r.events[r.events.length-1];let i=o&&"linePrefix"===o[1].type?o[2].sliceSerialize(o[1],!0).length:0,a=0;return function(t){const o=r.containerState.type||(42===t||43===t||45===t?"listUnordered":"listOrdered");if("listUnordered"===o?!r.containerState.marker||t===r.containerState.marker:ia(t)){if(r.containerState.type||(r.containerState.type=o,e.enter(o,{_container:!0})),"listUnordered"===o)return e.enter("listItemPrefix"),42===t||45===t?e.check(Ra,n,s)(t):s(t);if(!r.interrupt||49===t)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(t)}return n(t)};function l(t){return ia(t)&&++a<10?(e.consume(t),l):(!r.interrupt||a<2)&&(r.containerState.marker?t===r.containerState.marker:41===t||46===t)?(e.exit("listItemValue"),s(t)):n(t)}function s(t){return e.enter("listItemMarker"),e.consume(t),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||t,e.check(va,r.interrupt?n:c,e.attempt(La,d,u))}
vendor: 26,719 bytes, line 543
543function c(e){return r.containerState.initialBlankLine=!0,i++,d(e)}function u(t){return ua(t)?(e.enter("listItemPrefixWhitespace"),e.consume(t),e.exit("listItemPrefixWhitespace"),d):n(t)}function d(n){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(n)}},continuation:{tokenize:function(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(va,o,i);function o(n){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,ma(e,t,"listItemIndent",r.containerState.size+1)(n)}function i(n){return r.containerState.furtherBlankLines||!ua(n)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(n)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(Oa,t,a)(n))}function a(o){return r.containerState._closeFlow=!0,r.interrupt=void 0,ma(e,e.attempt(Ia,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}},exit:function(e){e.exit(this.containerState.type)}},La={tokenize:function(e,t,n){const r=this;return ma(e,(function(e){const o=r.events[r.events.length-1];return!ua(e)&&o&&"listItemPrefixWhitespace"===o[1].type?t(e):n(e)}),"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)},partial:!0},Oa={tokenize:function(e,t,n){const r=this;return ma(e,(function(e){const o=r.events[r.events.length-1];return o&&"listItemIndent"===o[1].type&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(e):n(e)}),"listItemIndent",r.containerState.size+1)},partial:!0};const ja={name:"blockQuote",tokenize:function(e,t,n){const r=this;return function(t){if(62===t){const n=r.containerState;return n.open||(e.enter("blockQuote",{_container:!0}),n.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(t),e.exit("blockQuoteMarker"),o}return n(t)};function o(n){return ua(n)?(e.enter("blockQuotePrefixWhitespace"),e.consume(n),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(n))}},continuation:{tokenize:function(e,t,n){const r=this;return function(t){if(ua(t))return ma(e,o,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t);return o(t)};function o(r){return e.attempt(ja,t,n)(r)}}},exit:function(e){e.exit("blockQuote")}};function za(e,t,n,r,o,i,a,l,s){const c=s||Number.POSITIVE_INFINITY;let u=0;return function(t){if(60===t)return e.enter(r),e.enter(o),e.enter(i),e.consume(t),e.exit(i),d;if(null===t||32===t||41===t||oa(t))return n(t);return e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),m(t)};function d(n){return 62===n?(e.enter(i),e.consume(n),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),p(n))}function p(t){return 62===t?(e.exit("chunkString"),e.exit(l),d(t)):null===t||60===t||sa(t)?n(t):(e.consume(t),92===t?f:p)}function f(t){return 60===t||62===t||92===t?(e.consume(t),p):p(t)}function m(o){return u||null!==o&&41!==o&&!ca(o)?u<c&&40===o?(e.consume(o),u++,m):41===o?(e.consume(o),u--,m):null===o||32===o||40===o||oa(o)?n(o):(e.consume(o),92===o?h:m):(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(o))}function h(t){return 40===t||41===t||92===t?(e.consume(t),m):m(t)}}function Na(e,t,n,r,o,i){const a=this;let l,s=0;return function(t){return e.enter(r),e.enter(o),e.consume(t),e.exit(o),e.enter(i),c};function c(d){return s>999||null===d||91===d||93===d&&!l||94===d&&!s&&"_hiddenFootnoteSupport"in a.parser.constructs?n(d):93===d?(e.exit(i),e.enter(o),e.consume(d),e.exit(o),e.exit(r),t):sa(d)?(e.enter("lineEnding"),e.consume(d),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),u(d))}function u(t){return null===t||91===t||93===t||sa(t)||s++>999?(e.exit("chunkString"),c(t)):(e.consume(t),l||(l=!ua(t)),92===t?d:u)}function d(t){return 91===t||92===t||93===t?(e.consume(t),s++,u):u(t)}}function Ma(e,t,n,r,o,i){let a;return function(t){if(34===t||39===t||40===t)return e.enter(r),e.enter(o),e.consume(t),e.exit(o),a=40===t?41:t,l;return n(t)};function l(n){return n===a?(e.enter(o),e.consume(n),e.exit(o),e.exit(r),t):(e.enter(i),s(n))}function s(t){return t===a?(e.exit(i),l(a)):null===t?n(t):sa(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),ma(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(t))}function c(t){return t===a||null===t||sa(t)?(e.exit("chunkString"),s(t)):(e.consume(t),92===t?u:c)}function u(t){return t===a||92===t?(e.consume(t),c):c(t)}}function Da(e,t){let n;return function r(o){if(sa(o))return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r;if(ua(o))return ma(e,r,n?"linePrefix":"lineSuffix")(o);return t(o)}}function Ua(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Fa={name:"definition",tokenize:function(e,t,n){const r=this;let o;return function(t){return e.enter("definition"),function(t){return Na.call(r,e,i,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(t)}(t)};function i(t){return o=Ua(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),58===t?(e.enter("definitionMarker"),e.consume(t),e.exit("definitionMarker"),a):n(t)}function a(t){return ca(t)?Da(e,l)(t):l(t)}function l(t){return za(e,s,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(t)}function s(t){return e.attempt($a,c,c)(t)}function c(t){return ua(t)?ma(e,u,"whitespace")(t):u(t)}function u(i){return null===i||sa(i)?(e.exit("definition"),r.parser.defined.push(o),t(i)):n(i)}}},$a={tokenize:function(e,t,n){return function(t){return ca(t)?Da(e,r)(t):n(t)};function r(t){return Ma(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(t)}function o(t){return ua(t)?ma(e,i,"whitespace")(t):i(t)}function i(e){return null===e||sa(e)?t(e):n(e)}},partial:!0};const Va={name:"codeIndented",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("codeIndented"),ma(e,o,"linePrefix",5)(t)};function o(e){const t=r.events[r.events.length-1];return t&&"linePrefix"===t[1].type&&t[2].sliceSerialize(t[1],!0).length>=4?i(e):n(e)}function i(t){return null===t?l(t):sa(t)?e.attempt(Ba,i,l)(t):(e.enter("codeFlowValue"),a(t))}function a(t){return null===t||sa(t)?(e.exit("codeFlowValue"),i(t)):(e.consume(t),a)}function l(n){return e.exit("codeIndented"),t(n)}}},Ba={tokenize:function(e,t,n){const r=this;return o;function o(t){return r.parser.lazy[r.now().line]?n(t):sa(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o):ma(e,i,"linePrefix",5)(t)}function i(e){const i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?t(e):sa(e)?o(e):n(e)}},partial:!0};const Ha={name:"headingAtx",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("atxHeading"),function(t){return e.enter("atxHeadingSequence"),o(t)}(t)};function o(t){return 35===t&&r++<6?(e.consume(t),o):null===t||ca(t)?(e.exit("atxHeadingSequence"),i(t)):n(t)}function i(n){return 35===n?(e.enter("atxHeadingSequence"),a(n)):null===n||sa(n)?(e.exit("atxHeading"),t(n)):ua(n)?ma(e,i,"whitespace")(n):(e.enter("atxHeadingText"),l(n))}function a(t){return 35===t?(e.consume(t),a):(e.exit("atxHeadingSequence"),i(t))}function l(t){return null===t||35===t||ca(t)?(e.exit("atxHeadingText"),i(t)):(e.consume(t),l)}},resolve:function(e,t){let n,r,o=e.length-2,i=3;"whitespace"===e[i][1].type&&(i+=2);o-2>i&&"whitespace"===e[o][1].type&&(o-=2);"atxHeadingSequence"===e[o][1].type&&(i===o-1||o-4>i&&"whitespace"===e[o-2][1].type)&&(o-=i+1===o?2:4);o>i&&(n={type:"atxHeadingText",start:e[i][1].start,end:e[o][1].end},r={type:"chunkText",start:e[i][1].start,end:e[o][1].end,contentType:"text"},Yi(e,i,o-i+1,[["enter",n,t],["enter",r,t],["exit",r,t],["exit",n,t]]));return e}};const Ga={name:"setextUnderline",tokenize:function(e,t,n){const r=this;let o;return function(t){let a,l=r.events.length;for(;l--;)if("lineEnding"!==r.events[l][1].type&&"linePrefix"!==r.events[l][1].type&&"content"!==r.events[l][1].type){a="paragraph"===r.events[l][1].type;break}if(!r.parser.lazy[r.now().line]&&(r.interrupt||a))return e.enter("setextHeadingLine"),o=t,function(t){return e.enter("setextHeadingLineSequence"),i(t)}(t);return n(t)};function i(t){return t===o?(e.consume(t),i):(e.exit("setextHeadingLineSequence"),ua(t)?ma(e,a,"lineSuffix")(t):a(t))}function a(r){return null===r||sa(r)?(e.exit("setextHeadingLine"),t(r)):n(r)}},resolveTo:function(e,t){let n,r,o,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){n=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),o||"definition"!==e[i][1].type||(o=i);const a={type:"setextHeading",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)};e[r][1].type="setextHeadingText",o?(e.splice(r,0,["enter",a,t]),e.splice(o+1,0,["exit",e[n][1],t]),e[n][1].end=Object.assign({},e[o][1].end)):e[n][1]=a;return e.push(["exit",a,t]),e}};const Ya=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Wa=["pre","script","style","textarea"],Ka={name:"htmlFlow",tokenize:function(e,t,n){const r=this;let o,i,a,l,s;return function(t){return function(t){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),c}(t)};function c(l){return 33===l?(e.consume(l),u):47===l?(e.consume(l),i=!0,f):63===l?(e.consume(l),o=3,r.interrupt?t:j):ta(l)?(e.consume(l),a=String.fromCharCode(l),m):n(l)}function u(i){return 45===i?(e.consume(i),o=2,d):91===i?(e.consume(i),o=5,l=0,p):ta(i)?(e.consume(i),o=4,r.interrupt?t:j):n(i)}function d(o){return 45===o?(e.consume(o),r.interrupt?t:j):n(o)}function p(o){const i="CDATA[";return o===i.charCodeAt(l++)?(e.consume(o),6===l?r.interrupt?t:C:p):n(o)}function f(t){return ta(t)?(e.consume(t),a=String.fromCharCode(t),m):n(t)}function m(l){if(null===l||47===l||62===l||ca(l)){const s=47===l,c=a.toLowerCase();return s||i||!Wa.includes(c)?Ya.includes(a.toLowerCase())?(o=6,s?(e.consume(l),h):r.interrupt?t(l):C(l)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(l):i?g(l):b(l)):(o=1,r.interrupt?t(l):C(l))}return 45===l||na(l)?(e.consume(l),a+=String.fromCharCode(l),m):n(l)}function h(o){return 62===o?(e.consume(o),r.interrupt?t:C):n(o)}function g(t){return ua(t)?(e.consume(t),g):k(t)}function b(t){return 47===t?(e.consume(t),k):58===t||95===t||ta(t)?(e.consume(t),v):ua(t)?(e.consume(t),b):k(t)}function v(t){return 45===t||46===t||58===t||95===t||na(t)?(e.consume(t),v):y(t)}function y(t){return 61===t?(e.consume(t),x):ua(t)?(e.consume(t),y):b(t)}function x(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),s=t,w):ua(t)?(e.consume(t),x):E(t)}function w(t){return t===s?(e.consume(t),s=null,_):null===t||sa(t)?n(t):(e.consume(t),w)}function E(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||ca(t)?y(t):(e.consume(t),E)}function _(e){return 47===e||62===e||ua(e)?b(e):n(e)}function k(t){return 62===t?(e.consume(t),T):n(t)}function T(t){return null===t||sa(t)?C(t):ua(t)?(e.consume(t),T):n(t)}function C(t){return 45===t&&2===o?(e.consume(t),R):60===t&&1===o?(e.consume(t),I):62===t&&4===o?(e.consume(t),z):63===t&&3===o?(e.consume(t),j):93===t&&5===o?(e.consume(t),O):!sa(t)||6!==o&&7!==o?null===t||sa(t)?(e.exit("htmlFlowData"),S(t)):(e.consume(t),C):(e.exit("htmlFlowData"),e.check(qa,N,S)(t))}function S(t){return e.check(Qa,P,N)(t)}function P(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),A}function A(t){return null===t||sa(t)?S(t):(e.enter("htmlFlowData"),C(t))}function R(t){return 45===t?(e.consume(t),j):C(t)}function I(t){return 47===t?(e.consume(t),a="",L):C(t)}function L(t){if(62===t){const n=a.toLowerCase();return Wa.includes(n)?(e.consume(t),z):C(t)}return ta(t)&&a.length<8?(e.consume(t),a+=String.fromCharCode(t),L):C(t)}function O(t){return 93===t?(e.consume(t),j):C(t)}function j(t){return 62===t?(e.consume(t),z):45===t&&2===o?(e.consume(t),j):C(t)}function z(t){return null===t||sa(t)?(e.exit("htmlFlowData"),N(t)):(e.consume(t),z)}function N(n){return e.exit("htmlFlow"),t(n)}},resolveTo:function(e){let t=e.length;for(;t--&&("enter"!==e[t][0]||"htmlFlow"!==e[t][1].type););t>1&&"linePrefix"===e[t-2][1].type&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2));return e},concrete:!0},qa={tokenize:function(e,t,n){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(va,t,n)}},partial:!0},Qa={tokenize:function(e,t,n){const r=this;return function(t){if(sa(t))return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o;return n(t)};function o(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0};const Xa={tokenize:function(e,t,n){const r=this;return function(t){if(null===t)return n(t);return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),o};function o(e){return r.parser.lazy[r.now().line]?n(e):t(e)}},partial:!0},Ja={name:"codeFenced",tokenize:function(e,t,n){const r=this,o={tokenize:function(e,t,n){let o=0;return a;function a(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),s}function s(t){return e.enter("codeFencedFence"),ua(t)?ma(e,c,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):c(t)}function c(t){return t===i?(e.enter("codeFencedFenceSequence"),u(t)):n(t)}function u(t){return t===i?(o++,e.consume(t),u):o>=l?(e.exit("codeFencedFenceSequence"),ua(t)?ma(e,d,"whitespace")(t):d(t)):n(t)}function d(r){return null===r||sa(r)?(e.exit("codeFencedFence"),t(r)):n(r)}},partial:!0};let i,a=0,l=0;return function(t){return function(t){const n=r.events[r.events.length-1];return a=n&&"linePrefix"===n[1].type?n[2].sliceSerialize(n[1],!0).length:0,i=t,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),s(t)}(t)};function s(t){return t===i?(l++,e.consume(t),s):l<3?n(t):(e.exit("codeFencedFenceSequence"),ua(t)?ma(e,c,"whitespace")(t):c(t))}function c(n){return null===n||sa(n)?(e.exit("codeFencedFence"),r.interrupt?t(n):e.check(Xa,f,v)(n)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),u(n))}function u(t){return null===t||sa(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),c(t)):ua(t)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),ma(e,d,"whitespace")(t)):96===t&&t===i?n(t):(e.consume(t),u)}function d(t){return null===t||sa(t)?c(t):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),p(t))}function p(t){return null===t||sa(t)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),c(t)):96===t&&t===i?n(t):(e.consume(t),p)}function f(t){return e.attempt(o,v,m)(t)}function m(t){return e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),h}function h(t){return a>0&&ua(t)?ma(e,g,"linePrefix",a+1)(t):g(t)}function g(t){return null===t||sa(t)?e.check(Xa,f,v)(t):(e.enter("codeFlowValue"),b(t))}function b(t){return null===t||sa(t)?(e.exit("codeFlowValue"),g(t)):(e.consume(t),b)}function v(n){return e.exit("codeFenced"),t(n)}},concrete:!0};const Za=document.createElement("i");function el(e){const t="&"+e+";";Za.innerHTML=t;const n=Za.textContent;return(59!==n.charCodeAt(n.length-1)||"semi"===e)&&(n!==t&&n)}const tl={name:"characterReference",tokenize:function(e,t,n){const r=this;let o,i,a=0;return function(t){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(t),e.exit("characterReferenceMarker"),l};function l(t){return 35===t?(e.enter("characterReferenceMarkerNumeric"),e.consume(t),e.exit("characterReferenceMarkerNumeric"),s):(e.enter("characterReferenceValue"),o=31,i=na,c(t))}function s(t){return 88===t||120===t?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(t),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),o=6,i=aa,c):(e.enter("characterReferenceValue"),o=7,i=ia,c(t))}function c(l){if(59===l&&a){const o=e.exit("characterReferenceValue");return i!==na||el(r.sliceSerialize(o))?(e.enter("characterReferenceMarker"),e.consume(l),e.exit("characterReferenceMarker"),e.exit("characterReference"),t):n(l)}return i(l)&&a++<o?(e.consume(l),c):n(l)}}};const nl={name:"characterEscape",tokenize:function(e,t,n){return function(t){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(t),e.exit("escapeMarker"),r};function r(r){return la(r)?(e.enter("characterEscapeValue"),e.consume(r),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(r)}}};const rl={name:"lineEnding",tokenize:function(e,t){return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),ma(e,t,"linePrefix")}}};const ol={name:"labelEnd",tokenize:function(e,t,n){const r=this;let o,i,a=r.events.length;for(;a--;)if(("labelImage"===r.events[a][1].type||"labelLink"===r.events[a][1].type)&&!r.events[a][1]._balanced){o=r.events[a][1];break}return function(t){if(!o)return n(t);if(o._inactive)return u(t);return i=r.parser.defined.includes(Ua(r.sliceSerialize({start:o.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelEnd"),l};function l(t){return 40===t?e.attempt(il,c,i?c:u)(t):91===t?e.attempt(al,c,i?s:u)(t):i?c(t):u(t)}function s(t){return e.attempt(ll,c,u)(t)}function c(e){return t(e)}function u(e){return o._balanced=!0,n(e)}},resolveTo:function(e,t){let n,r,o,i,a=e.length,l=0;for(;a--;)if(n=e[a][1],r){if("link"===n.type||"labelLink"===n.type&&n._inactive)break;"enter"===e[a][0]&&"labelLink"===n.type&&(n._inactive=!0)}else if(o){if("enter"===e[a][0]&&("labelImage"===n.type||"labelLink"===n.type)&&!n._balanced&&(r=a,"labelLink"!==n.type)){l=2;break}}else"labelEnd"===n.type&&(o=a);const s={type:"labelLink"===e[r][1].type?"link":"image",start:Object.assign({},e[r][1].start),end:Object.assign({},e[e.length-1][1].end)},c={type:"label",start:Object.assign({},e[r][1].start),end:Object.assign({},e[o][1].end)},u={type:"labelText",start:Object.assign({},e[r+l+2][1].end),end:Object.assign({},e[o-2][1].start)};return i=[["enter",s,t],["enter",c,t]],i=Wi(i,e.slice(r+1,r+l+3)),i=Wi(i,[["enter",u,t]]),i=Wi(i,Pa(t.parser.constructs.insideSpan.null,e.slice(r+l+4,o-3),t)),i=Wi(i,[["exit",u,t],e[o-2],e[o-1],["exit",c,t]]),i=Wi(i,e.slice(o+1)),i=Wi(i,[["exit",s,t]]),Yi(e,r,e.length,i),e},resolveAll:function(e){let t=-1;for(;++t<e.length;){const n=e[t][1];"labelImage"!==n.type&&"labelLink"!==n.type&&"labelEnd"!==n.type||(e.splice(t+1,"labelImage"===n.type?4:2),n.type="data",t++)}return e}},il={tokenize:function(e,t,n){return function(t){return e.enter("resource"),e.enter("resourceMarker"),e.consume(t),e.exit("resourceMarker"),r};function r(t){return ca(t)?Da(e,o)(t):o(t)}function o(t){return 41===t?c(t):za(e,i,a,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(t)}function i(t){return ca(t)?Da(e,l)(t):c(t)}function a(e){return n(e)}function l(t){return 34===t||39===t||40===t?Ma(e,s,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(t):c(t)}function s(t){return ca(t)?Da(e,c)(t):c(t)}function c(r){return 41===r?(e.enter("resourceMarker"),e.consume(r),e.exit("resourceMarker"),e.exit("resource"),t):n(r)}}},al={tokenize:function(e,t,n){const r=this;return function(t){return Na.call(r,e,o,i,"reference","referenceMarker","referenceString")(t)};function o(e){return r.parser.defined.includes(Ua(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(e):n(e)}function i(e){return n(e)}}},ll={tokenize:function(e,t,n){return function(t){return e.enter("reference"),e.enter("referenceMarker"),e.consume(t),e.exit("referenceMarker"),r};function r(r){return 93===r?(e.enter("referenceMarker"),e.consume(r),e.exit("referenceMarker"),e.exit("reference"),t):n(r)}}};const sl={name:"labelStartImage",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(t),e.exit("labelImageMarker"),o};function o(t){return 91===t?(e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelImage"),i):n(t)}function i(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:ol.resolveAll};function cl(e){return null===e||ca(e)||pa(e)?1:da(e)?2:void 0}const ul={name:"attention",tokenize:function(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=cl(r);let i;return function(t){return i=t,e.enter("attentionSequence"),a(t)};function a(l){if(l===i)return e.consume(l),a;const s=e.exit("attentionSequence"),c=cl(l),u=!c||2===c&&o||n.includes(l),d=!o||2===o&&c||n.includes(r);return s._open=Boolean(42===i?u:u&&(o||!d)),s._close=Boolean(42===i?d:d&&(c||!u)),t(l)}},resolveAll:function(e,t){let n,r,o,i,a,l,s,c,u=-1;for(;++u<e.length;)if("enter"===e[u][0]&&"attentionSequence"===e[u][1].type&&e[u][1]._close)for(n=u;n--;)if("exit"===e[n][0]&&"attentionSequence"===e[n][1].type&&e[n][1]._open&&t.sliceSerialize(e[n][1]).charCodeAt(0)===t.sliceSerialize(e[u][1]).charCodeAt(0)){if((e[n][1]._close||e[u][1]._open)&&(e[u][1].end.offset-e[u][1].start.offset)%3&&!((e[n][1].end.offset-e[n][1].start.offset+e[u][1].end.offset-e[u][1].start.offset)%3))continue;l=e[n][1].end.offset-e[n][1].start.offset>1&&e[u][1].end.offset-e[u][1].start.offset>1?2:1;const d=Object.assign({},e[n][1].end),p=Object.assign({},e[u][1].start);dl(d,-l),dl(p,l),i={type:l>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[n][1].end)},a={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[u][1].start),end:p},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},e[n][1].end),end:Object.assign({},e[u][1].start)},r={type:l>1?"strong":"emphasis",start:Object.assign({},i.start),end:Object.assign({},a.end)},e[n][1].end=Object.assign({},i.start),e[u][1].start=Object.assign({},a.end),s=[],e[n][1].end.offset-e[n][1].start.offset&&(s=Wi(s,[["enter",e[n][1],t],["exit",e[n][1],t]])),s=Wi(s,[["enter",r,t],["enter",i,t],["exit",i,t],["enter",o,t]]),s=Wi(s,Pa(t.parser.constructs.insideSpan.null,e.slice(n+1,u),t)),s=Wi(s,[["exit",o,t],["enter",a,t],["exit",a,t],["exit",r,t]]),e[u][1].end.offset-e[u][1].start.offset?(c=2,s=Wi(s,[["enter",e[u][1],t],["exit",e[u][1],t]])):c=0,Yi(e,n-1,u-n+3,s),u=n+s.length-c-2;break}u=-1;for(;++u<e.length;)"attentionSequence"===e[u][1].type&&(e[u][1].type="data");return e}};function dl(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const pl={name:"autolink",tokenize:function(e,t,n){let r=0;return function(t){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(t),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),o};function o(t){return ta(t)?(e.consume(t),i):64===t?n(t):s(t)}function i(e){return 43===e||45===e||46===e||na(e)?(r=1,a(e)):s(e)}function a(t){return 58===t?(e.consume(t),r=0,l):(43===t||45===t||46===t||na(t))&&r++<32?(e.consume(t),a):(r=0,s(t))}function l(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),t):null===r||32===r||60===r||oa(r)?n(r):(e.consume(r),l)}function s(t){return 64===t?(e.consume(t),c):ra(t)?(e.consume(t),s):n(t)}function c(e){return na(e)?u(e):n(e)}function u(n){return 46===n?(e.consume(n),r=0,c):62===n?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.exit("autolink"),t):d(n)}function d(t){if((45===t||na(t))&&r++<63){const n=45===t?d:u;return e.consume(t),n}return n(t)}}};const fl={name:"htmlText",tokenize:function(e,t,n){const r=this;let o,i,a;return function(t){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(t),l};function l(t){return 33===t?(e.consume(t),s):47===t?(e.consume(t),x):63===t?(e.consume(t),v):ta(t)?(e.consume(t),_):n(t)}function s(t){return 45===t?(e.consume(t),c):91===t?(e.consume(t),i=0,f):ta(t)?(e.consume(t),b):n(t)}function c(t){return 45===t?(e.consume(t),p):n(t)}function u(t){return null===t?n(t):45===t?(e.consume(t),d):sa(t)?(a=u,L(t)):(e.consume(t),u)}function d(t){return 45===t?(e.consume(t),p):u(t)}function p(e){return 62===e?I(e):45===e?d(e):u(e)}function f(t){const r="CDATA[";return t===r.charCodeAt(i++)?(e.consume(t),6===i?m:f):n(t)}function m(t){return null===t?n(t):93===t?(e.consume(t),h):sa(t)?(a=m,L(t)):(e.consume(t),m)}function h(t){return 93===t?(e.consume(t),g):m(t)}function g(t){return 62===t?I(t):93===t?(e.consume(t),g):m(t)}function b(t){return null===t||62===t?I(t):sa(t)?(a=b,L(t)):(e.consume(t),b)}function v(t){return null===t?n(t):63===t?(e.consume(t),y):sa(t)?(a=v,L(t)):(e.consume(t),v)}function y(e){return 62===e?I(e):v(e)}function x(t){return ta(t)?(e.consume(t),w):n(t)}function w(t){return 45===t||na(t)?(e.consume(t),w):E(t)}function E(t){return sa(t)?(a=E,L(t)):ua(t)?(e.consume(t),E):I(t)}function _(t){return 45===t||na(t)?(e.consume(t),_):47===t||62===t||ca(t)?k(t):n(t)}function k(t){return 47===t?(e.consume(t),I):58===t||95===t||ta(t)?(e.consume(t),T):sa(t)?(a=k,L(t)):ua(t)?(e.consume(t),k):I(t)}function T(t){return 45===t||46===t||58===t||95===t||na(t)?(e.consume(t),T):C(t)}function C(t){return 61===t?(e.consume(t),S):sa(t)?(a=C,L(t)):ua(t)?(e.consume(t),C):k(t)}function S(t){return null===t||60===t||61===t||62===t||96===t?n(t):34===t||39===t?(e.consume(t),o=t,P):sa(t)?(a=S,L(t)):ua(t)?(e.consume(t),S):(e.consume(t),A)}function P(t){return t===o?(e.consume(t),o=void 0,R):null===t?n(t):sa(t)?(a=P,L(t)):(e.consume(t),P)}function A(t){return null===t||34===t||39===t||60===t||61===t||96===t?n(t):47===t||62===t||ca(t)?k(t):(e.consume(t),A)}function R(e){return 47===e||62===e||ca(e)?k(e):n(e)}function I(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),t):n(r)}function L(t){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),O}function O(t){return ua(t)?ma(e,j,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(t):j(t)}function j(t){return e.enter("htmlTextData"),a(t)}}};const ml={name:"labelStartLink",tokenize:function(e,t,n){const r=this;return function(t){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(t),e.exit("labelMarker"),e.exit("labelLink"),o};function o(e){return 94===e&&"_hiddenFootnoteSupport"in r.parser.constructs?n(e):t(e)}},resolveAll:ol.resolveAll};
vendor: 5,615 bytes, line 543
543const hl={name:"hardBreakEscape",tokenize:function(e,t,n){return function(t){return e.enter("hardBreakEscape"),e.consume(t),r};function r(r){return sa(r)?(e.exit("hardBreakEscape"),t(r)):n(r)}}};const gl={name:"codeText",tokenize:function(e,t,n){let r,o,i=0;return function(t){return e.enter("codeText"),e.enter("codeTextSequence"),a(t)};function a(t){return 96===t?(e.consume(t),i++,a):(e.exit("codeTextSequence"),l(t))}function l(t){return null===t?n(t):32===t?(e.enter("space"),e.consume(t),e.exit("space"),l):96===t?(o=e.enter("codeTextSequence"),r=0,c(t)):sa(t)?(e.enter("lineEnding"),e.consume(t),e.exit("lineEnding"),l):(e.enter("codeTextData"),s(t))}function s(t){return null===t||32===t||96===t||sa(t)?(e.exit("codeTextData"),l(t)):(e.consume(t),s)}function c(n){return 96===n?(e.consume(n),r++,c):r===i?(e.exit("codeTextSequence"),e.exit("codeText"),t(n)):(o.type="codeTextData",s(n))}},resolve:function(e){let t,n,r=e.length-4,o=3;if(("lineEnding"===e[o][1].type||"space"===e[o][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type))for(t=o;++t<r;)if("codeTextData"===e[t][1].type){e[o][1].type="codeTextPadding",e[r][1].type="codeTextPadding",o+=2,r-=2;break}t=o-1,r++;for(;++t<=r;)void 0===n?t!==r&&"lineEnding"!==e[t][1].type&&(n=t):t!==r&&"lineEnding"!==e[t][1].type||(e[n][1].type="codeTextData",t!==n+2&&(e[n][1].end=e[t-1][1].end,e.splice(n+2,t-n-2),r-=t-n-2,t=n+2),n=void 0);return e},previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type}};const bl={42:Ia,43:Ia,45:Ia,48:Ia,49:Ia,50:Ia,51:Ia,52:Ia,53:Ia,54:Ia,55:Ia,56:Ia,57:Ia,62:ja},vl={91:Fa},yl={[-2]:Va,[-1]:Va,32:Va},xl={35:Ha,42:Ra,45:[Ga,Ra],60:Ka,61:Ga,95:Ra,96:Ja,126:Ja},wl={38:tl,92:nl},El={[-5]:rl,[-4]:rl,[-3]:rl,33:sl,38:tl,42:ul,60:[pl,fl],91:ml,92:[hl,nl],93:ol,95:ul,96:gl},_l={null:[ul,Ea]},kl={null:[42,95]},Tl={null:[]};function Cl(e){const n=function(e){const t={};let n=-1;for(;++n<e.length;)Zi(t,e[n]);return t}([t,...(e||{}).extensions||[]]),r={defined:[],lazy:{},constructs:n,content:o(ha),document:o(ga),flow:o(wa),string:o(_a),text:o(ka)};return r;function o(e){return function(t){return Aa(r,e,t)}}}const Sl=/[\0\t\n\r]/g;function Pl(e,t){const n=Number.parseInt(e,t);return n<9||11===n||n>13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||65535===(65535&n)||65534===(65535&n)||n>1114111?"\ufffd":String.fromCodePoint(n)}const Al=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Rl(e,t,n){if(t)return t;if(35===n.charCodeAt(0)){const e=n.charCodeAt(1),t=120===e||88===e;return Pl(n.slice(t?2:1),t?16:10)}return el(n)||e}const Il={}.hasOwnProperty;function Ll(e,t,n){return"string"!==typeof t&&(n=t,t=void 0),function(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(te),autolinkProtocol:T,autolinkEmail:T,atxHeading:i(X),blockQuote:i(Y),characterEscape:T,characterReference:T,codeFenced:i(W),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(W,a),codeText:i(K,a),codeTextData:T,data:T,codeFlowValue:T,definition:i(q),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(Q),hardBreakEscape:i(J),hardBreakTrailing:i(J),htmlFlow:i(Z,a),htmlFlowData:T,htmlText:i(Z,a),htmlTextData:T,image:i(ee),label:a,link:i(te),listItem:i(re),listItemValue:p,listOrdered:i(ne,d),listUnordered:i(ne),paragraph:i(oe),reference:U,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(X),strong:i(ie),thematicBreak:i(le)},exit:{atxHeading:s(),atxHeadingSequence:w,autolink:s(),autolinkEmail:G,autolinkProtocol:H,blockQuote:s(),characterEscapeValue:C,characterReferenceMarkerHexadecimal:$,characterReferenceMarkerNumeric:$,characterReferenceValue:V,characterReference:B,codeFenced:s(g),codeFencedFence:h,codeFencedFenceInfo:f,codeFencedFenceMeta:m,codeFlowValue:C,codeIndented:s(b),codeText:s(I),codeTextData:C,data:C,definition:s(),definitionDestinationString:x,definitionLabelString:v,definitionTitleString:y,emphasis:s(),hardBreakEscape:s(P),hardBreakTrailing:s(P),htmlFlow:s(A),htmlFlowData:C,htmlText:s(R),htmlTextData:C,image:s(O),label:z,labelText:j,lineEnding:S,link:s(L),listItem:s(),listOrdered:s(),listUnordered:s(),paragraph:s(),referenceString:F,resourceDestinationString:N,resourceTitleString:M,resource:D,setextHeading:s(k),setextHeadingLineSequence:_,setextHeadingText:E,strong:s(),thematicBreak:s()}};jl(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(e){let r={type:"root",children:[]};const i={stack:[r],tokenStack:[],config:t,enter:l,exit:c,buffer:a,resume:u,data:n},s=[];let d=-1;for(;++d<e.length;)if("listOrdered"===e[d][1].type||"listUnordered"===e[d][1].type)if("enter"===e[d][0])s.push(d);else{d=o(e,s.pop(),d)}for(d=-1;++d<e.length;){const n=t[e[d][0]];Il.call(n,e[d][1].type)&&n[e[d][1].type].call(Object.assign({sliceSerialize:e[d][2].sliceSerialize},i),e[d][1])}if(i.tokenStack.length>0){const e=i.tokenStack[i.tokenStack.length-1];(e[1]||Nl).call(i,void 0,e[0])}for(r.position={start:Ol(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:Ol(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},d=-1;++d<t.transforms.length;)r=t.transforms[d](r)||r;return r}function o(e,t,n){let r,o,i,a,l=t-1,s=-1,c=!1;for(;++l<=n;){const t=e[l];switch(t[1].type){case"listUnordered":case"listOrdered":case"blockQuote":"enter"===t[0]?s++:s--,a=void 0;break;case"lineEndingBlank":"enter"===t[0]&&(!r||a||s||i||(i=l),a=void 0);break;case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:a=void 0}
vendor: 6,801 bytes, line 543
543if(!s&&"enter"===t[0]&&"listItemPrefix"===t[1].type||-1===s&&"exit"===t[0]&&("listUnordered"===t[1].type||"listOrdered"===t[1].type)){if(r){let a=l;for(o=void 0;a--;){const t=e[a];if("lineEnding"===t[1].type||"lineEndingBlank"===t[1].type){if("exit"===t[0])continue;o&&(e[o][1].type="lineEndingBlank",c=!0),t[1].type="lineEnding",o=a}else if("linePrefix"!==t[1].type&&"blockQuotePrefix"!==t[1].type&&"blockQuotePrefixWhitespace"!==t[1].type&&"blockQuoteMarker"!==t[1].type&&"listItemIndent"!==t[1].type)break}i&&(!o||i<o)&&(r._spread=!0),r.end=Object.assign({},o?e[o][1].start:t[1].end),e.splice(o||l,0,["exit",r,t[2]]),l++,n++}if("listItemPrefix"===t[1].type){const o={type:"listItem",_spread:!1,start:Object.assign({},t[1].start),end:void 0};r=o,e.splice(l,0,["enter",o,t[2]]),l++,n++,i=void 0,a=!0}}}return e[t][1]._spread=c,n}function i(e,t){return n;function n(n){l.call(this,e(n),n),t&&t.call(this,n)}}function a(){this.stack.push({type:"fragment",children:[]})}function l(e,t,n){this.stack[this.stack.length-1].children.push(e),this.stack.push(e),this.tokenStack.push([t,n||void 0]),e.position={start:Ol(t.start),end:void 0}}function s(e){return t;function t(t){e&&e.call(this,t),c.call(this,t)}}function c(e,t){const n=this.stack.pop(),r=this.tokenStack.pop();if(!r)throw new Error("Cannot close `"+e.type+"` ("+yi({start:e.start,end:e.end})+"): it\u2019s not open");if(r[0].type!==e.type)if(t)t.call(this,e,r[0]);else{(r[1]||Nl).call(this,e,r[0])}n.position.end=Ol(e.end)}function u(){return function(e,t){const n=t||Bi;return Hi(e,"boolean"!==typeof n.includeImageAlt||n.includeImageAlt,"boolean"!==typeof n.includeHtml||n.includeHtml)}(this.stack.pop())}function d(){this.data.expectingFirstListItemValue=!0}function p(e){if(this.data.expectingFirstListItemValue){this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0}}function f(){const e=this.resume();this.stack[this.stack.length-1].lang=e}function m(){const e=this.resume();this.stack[this.stack.length-1].meta=e}function h(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function g(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function b(){const e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}function v(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Ua(this.sliceSerialize(e)).toLowerCase()}function y(){const e=this.resume();this.stack[this.stack.length-1].title=e}function x(){const e=this.resume();this.stack[this.stack.length-1].url=e}function w(e){const t=this.stack[this.stack.length-1];if(!t.depth){const n=this.sliceSerialize(e).length;t.depth=n}}function E(){this.data.setextHeadingSlurpLineEnding=!0}function _(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).codePointAt(0)?1:2}function k(){this.data.setextHeadingSlurpLineEnding=void 0}function T(e){const t=this.stack[this.stack.length-1].children;let n=t[t.length-1];n&&"text"===n.type||(n=ae(),n.position={start:Ol(e.start),end:void 0},t.push(n)),this.stack.push(n)}function C(e){const t=this.stack.pop();t.value+=this.sliceSerialize(e),t.position.end=Ol(e.end)}function S(e){const n=this.stack[this.stack.length-1];if(this.data.atHardBreak){return n.children[n.children.length-1].position.end=Ol(e.end),void(this.data.atHardBreak=void 0)}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(n.type)&&(T.call(this,e),C.call(this,e))}function P(){this.data.atHardBreak=!0}function A(){const e=this.resume();this.stack[this.stack.length-1].value=e}function R(){const e=this.resume();this.stack[this.stack.length-1].value=e}function I(){const e=this.resume();this.stack[this.stack.length-1].value=e}function L(){const e=this.stack[this.stack.length-1];if(this.data.inReference){const t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function O(){const e=this.stack[this.stack.length-1];if(this.data.inReference){const t=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=t,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}function j(e){const t=this.sliceSerialize(e),n=this.stack[this.stack.length-2];n.label=function(e){return e.replace(Al,Rl)}(t),n.identifier=Ua(t).toLowerCase()}function z(){const e=this.stack[this.stack.length-1],t=this.resume(),n=this.stack[this.stack.length-1];if(this.data.inReference=!0,"link"===n.type){const t=e.children;n.children=t}else n.alt=t}function N(){const e=this.resume();this.stack[this.stack.length-1].url=e}function M(){const e=this.resume();this.stack[this.stack.length-1].title=e}function D(){this.data.inReference=void 0}function U(){this.data.referenceType="collapsed"}function F(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.label=t,n.identifier=Ua(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType="full"}function $(e){this.data.characterReferenceType=e.type}function V(e){const t=this.sliceSerialize(e),n=this.data.characterReferenceType;let r;if(n)r=Pl(t,"characterReferenceMarkerNumeric"===n?10:16),this.data.characterReferenceType=void 0;else{r=el(t)}this.stack[this.stack.length-1].value+=r}function B(e){this.stack.pop().position.end=Ol(e.end)}function H(e){C.call(this,e);this.stack[this.stack.length-1].url=this.sliceSerialize(e)}function G(e){C.call(this,e);this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)}function Y(){return{type:"blockquote",children:[]}}function W(){return{type:"code",lang:null,meta:null,value:""}}function K(){return{type:"inlineCode",value:""}}function q(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Q(){return{type:"emphasis",children:[]}}function X(){return{type:"heading",depth:0,children:[]}}function J(){return{type:"break"}}function Z(){return{type:"html",value:""}}function ee(){return{type:"image",title:null,url:"",alt:null}}function te(){return{type:"link",title:null,url:"",children:[]}}function ne(e){return{type:"list",ordered:"listOrdered"===e.type,start:null,spread:e._spread,children:[]}}function re(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}function oe(){return{type:"paragraph",children:[]}}function ie(){return{type:"strong",children:[]}}function ae(){return{type:"text",value:""}}function le(){return{type:"thematicBreak"}}}(n)(function(e){for(;!Qi(e););return e}(Cl(n).document().write(function(){let e,t=1,n="",r=!0;return function(o,i,a){const l=[];let s,c,u,d,p;for(o=n+("string"===typeof o?o.toString():new TextDecoder(i||void 0).decode(o)),u=0,n="",r&&(65279===o.charCo
543deAt(0)&&u++,r=void 0);u<o.length;){if(Sl.lastIndex=u,s=Sl.exec(o),d=s&&void 0!==s.index?s.index:o.length,p=o.charCodeAt(d),!s){n=o.slice(u);break}if(10===p&&u===d&&e)l.push(-3),e=void 0;else switch(e&&(l.push(-5),e=void 0),u<d&&(l.push(o.slice(u,d)),t+=d-u),p){case 0:l.push(65533),t++;break;case 9:for(c=4*Math.ceil(t/4),l.push(-2);t++<c;)l.push(-1);break;case 10:l.push(-4),t=1;break;default:e=!0,t=1}u=d+1}return a&&(e&&l.push(-5),n&&l.push(n),l.push(null)),l}}()(e,t,!0))))}function Ol(e){return{line:e.line,column:e.column,offset:e.offset}}function jl(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?jl(e,r):zl(e,r)}}function zl(e,t){let n;for(n in t)if(Il.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function Nl(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+yi({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+yi({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+yi({start:t.start,end:t.end})+") is still open")}function Ml(e){const t=this;t.parser=function(n){return Ll(n,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}const Dl="object"===typeof self?self:globalThis,Ul=e=>((e,t)=>{const n=(t,n)=>(e.set(n,t),t),r=o=>{if(e.has(o))return e.get(o);const[i,a]=t[o];switch(i){case 0:case-1:return n(a,o);case 1:{const e=n([],o);for(const t of a)e.push(r(t));return e}case 2:{const e=n({},o);for(const[t,n]of a)e[r(t)]=r(n);return e}case 3:return n(new Date(a),o);case 4:{const{source:e,flags:t}=a;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,n]of a)e.set(r(t),r(n));return e}case 6:{const e=n(new Set,o);for(const t of a)e.add(r(t));return e}case 7:{const{name:e,message:t}=a;return n(new Dl[e](t),o)}case 8:return n(BigInt(a),o);case"BigInt":return n(Object(BigInt(a)),o)}return n(new Dl[i](a),o)};return r})(new Map,e)(0),Fl="",{toString:$l}={},{keys:Vl}=Object,Bl=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const n=$l.call(e).slice(8,-1);switch(n){case"Array":return[1,Fl];case"Object":return[2,Fl];case"Date":return[3,Fl];case"RegExp":return[4,Fl];case"Map":return[5,Fl];case"Set":return[6,Fl]}return n.includes("Array")?[1,n]:n.includes("Error")?[7,n]:[2,n]},Hl=e=>{let[t,n]=e;return 0===t&&("function"===n||"symbol"===n)},Gl=function(e){let{json:t,lossy:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const r=[];return((e,t,n,r)=>{const o=(e,t)=>{const o=r.push(e)-1;return n.set(t,o),o},i=r=>{if(n.has(r))return n.get(r);let[a,l]=Bl(r);switch(a){case 0:{let t=r;switch(l){case"bigint":a=8,t=r.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+l);t=null;break;case"undefined":return o([-1],r)}return o([a,t],r)}case 1:{if(l)return o([l,[...r]],r);const e=[],t=o([a,e],r);for(const n of r)e.push(i(n));return t}case 2:{if(l)switch(l){case"BigInt":return o([l,r.toString()],r);case"Boolean":case"Number":case"String":return o([l,r.valueOf()],r)}if(t&&"toJSON"in r)return i(r.toJSON());const n=[],s=o([a,n],r);for(const t of Vl(r))!e&&Hl(Bl(r[t]))||n.push([i(t),i(r[t])]);return s}case 3:return o([a,r.toISOString()],r);case 4:{const{source:e,flags:t}=r;return o([a,{source:e,flags:t}],r)}case 5:{const t=[],n=o([a,t],r);for(const[o,a]of r)(e||!Hl(Bl(o))&&!Hl(Bl(a)))&&t.push([i(o),i(a)]);return n}case 6:{const t=[],n=o([a,t],r);for(const o of r)!e&&Hl(Bl(o))||t.push(i(o));return n}}const{message:s}=r;return o([a,{name:l,message:s}],r)};return i})(!(t||n),!!t,new Map,r)(e),r},Yl="function"===typeof structuredClone?(e,t)=>t&&("json"in t||"lossy"in t)?Ul(Gl(e,t)):structuredClone(e):(e,t)=>Ul(Gl(e,t));function Wl(e){const t=[];let n=-1,r=0,o=0;for(;++n<e.length;){const i=e.charCodeAt(n);let a="";if(37===i&&na(e.charCodeAt(n+1))&&na(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(a=String.fromCharCode(i));else if(i>55295&&i<57344){const t=e.charCodeAt(n+1);i<56320&&t>56319&&t<57344?(a=String.fromCharCode(i,t),o=1):a="\ufffd"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+o+1,a=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function Kl(e,t){const n=[{type:"text",value:"\u21a9"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function ql(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}const Ql=function(e){if(null===e||void 0===e)return Jl;if("function"===typeof e)return Xl(e);if("object"===typeof e)return Array.isArray(e)?function(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=Ql(e[n]);return Xl(r);function r(){let e=-1;for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];for(;++e<t.length;)if(t[e].apply(this,r))return!0;return!1}}(e):function(e){const t=e;return Xl(n);function n(n){const r=n;let o;for(o in e)if(r[o]!==t[o])return!1;return!0}}(e);if("string"===typeof e)return function(e){return Xl(t);function t(t){return t&&t.type===e}}(e);throw new Error("Expected function, string, or object as test")};function Xl(e){return function(t,n,r){return Boolean(Zl(t)&&e.call(this,t,"number"===typeof n?n:void 0,r||void 0))}}function Jl(){return!0}function Zl(e){return null!==e&&"object"===typeof e&&"type"in e}const es=[],ts=!0,ns=!1;function rs(e,t,n,r){let o;"function"===typeof t&&"function"!==typeof n?(r=n,n=t):o=t;const i=Ql(o),a=r?-1:1;!function e(o,l,s){const c=o&&"object"===typeof o?o:{};if("string"===typeof c.type){const e="string"===typeof c.tagName?c.tagName:"string"===typeof c.name?c.name:void 0;Object.defineProperty(u,"name",{value:"node ("+o.type+(e?"<"+e+">":"")+")"})}return u;function u(){let c,u,d,p=es;if((!t||i(o,l,s[s.length-1]||void 0))&&(p=function(e){if(Array.isArray(e))return e;if("number"===typeof e)return[ts,e];return null===e||void 0===e?es:[e]}(n(o,s)),p[0]===ns))return p;if("children"in o&&o.children){const t=o;
vendor: 9,783 bytes, line 543
543if(t.children&&"skip"!==p[0])for(u=(r?t.children.length:-1)+a,d=s.concat(t);u>-1&&u<t.children.length;){const n=t.children[u];if(c=e(n,u,d)(),c[0]===ns)return c;u="number"===typeof c[1]?c[1]:u+a}}return p}}(e,void 0,[])()}function os(e,t,n,r){let o,i,a;"function"===typeof t&&"function"!==typeof n?(i=void 0,a=t,o=n):(i=t,a=n,o=r),rs(e,i,(function(e,t){const n=t[t.length-1],r=n?n.children.indexOf(e):void 0;return a(e,r,n)}),o)}function is(e,t){const n=t.referenceType;let r="]";if("collapsed"===n?r+="[]":"full"===n&&(r+="["+(t.label||t.identifier)+"]"),"imageReference"===t.type)return[{type:"text",value:"!["+t.alt+r}];const o=e.all(t),i=o[0];i&&"text"===i.type?i.value="["+i.value:o.unshift({type:"text",value:"["});const a=o[o.length-1];return a&&"text"===a.type?a.value+=r:o.push({type:"text",value:r}),o}function as(e){const t=e.spread;return null===t||void 0===t?e.children.length>1:t}function ls(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const i=[];for(;r;)i.push(ss(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(ss(t.slice(o),o>0,!1)),i.join("")}function ss(e,t,n){let r=0,o=e.length;if(t){let t=e.codePointAt(r);for(;9===t||32===t;)r++,t=e.codePointAt(r)}if(n){let t=e.codePointAt(o-1);for(;9===t||32===t;)o--,t=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}const cs={blockquote:function(e,t){const n={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(t),!0)};return e.patch(t,n),e.applyData(t,n)},break:function(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:"\n"}]},code:function(e,t){const n=t.value?t.value+"\n":"",r={};t.lang&&(r.className=["language-"+t.lang]);let o={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(o.data={meta:t.meta}),e.patch(t,o),o=e.applyData(t,o),o={type:"element",tagName:"pre",properties:{},children:[o]},e.patch(t,o),o},delete:function(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},emphasis:function(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},footnoteReference:function(e,t){const n="string"===typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=Wl(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);void 0===l?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const s={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,s);const c={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,c),e.applyData(t,c)},heading:function(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},html:function(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}},imageReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return is(e,t);const o={src:Wl(r.url||""),alt:t.alt};null!==r.title&&void 0!==r.title&&(o.title=r.title);const i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)},image:function(e,t){const n={src:Wl(t.url)};null!==t.alt&&void 0!==t.alt&&(n.alt=t.alt),null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)},inlineCode:function(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)},linkReference:function(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return is(e,t);const o={href:Wl(r.url||"")};null!==r.title&&void 0!==r.title&&(o.title=r.title);const i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)},link:function(e,t){const n={href:Wl(t.url)};null!==t.title&&void 0!==t.title&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)},listItem:function(e,t,n){const r=e.all(t),o=n?function(e){let t=!1;if("list"===e.type){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r<n.length;)t=as(n[r])}return t}(n):as(t),i={},a=[];if("boolean"===typeof t.checked){const e=r[0];let n;e&&"element"===e.type&&"p"===e.tagName?n=e:(n={type:"element",tagName:"p",properties:{},children:[]},r.unshift(n)),n.children.length>0&&n.children.unshift({type:"text",value:" "}),n.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l<r.length;){const e=r[l];(o||0!==l||"element"!==e.type||"p"!==e.tagName)&&a.push({type:"text",value:"\n"}),"element"!==e.type||"p"!==e.tagName||o?a.push(e):a.push(...e.children)}const s=r[r.length-1];s&&(o||"element"!==s.type||"p"!==s.tagName)&&a.push({type:"text",value:"\n"});const c={type:"element",tagName:"li",properties:i,children:a};return e.patch(t,c),e.applyData(t,c)},list:function(e,t){const n={},r=e.all(t);let o=-1;for("number"===typeof t.start&&1!==t.start&&(n.start=t.start);++o<r.length;){const e=r[o];if("element"===e.type&&"li"===e.tagName&&e.properties&&Array.isArray(e.properties.className)&&e.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const i={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,i),e.applyData(t,i)},paragraph:function(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},root:function(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)},strong:function(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},table:function(e,t){const n=e.all(t),r=n.shift(),o=[];if(r){const n={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],n),o.push(n)}if(n.length>0){const r={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},i=bi(t.children[1]),a=gi(t.children[t.children.length-1]);i&&a&&(r.position={start:i,end:a}),o.push(r)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)},tableCell:function(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)},tableRow:function(e,t,n){const r=n?n.children:void 0,o=0===(r?r.indexOf(t):1)?"th":"td",i=n&&"table"===n.type?n.align:void 0,a=i?i.length:t.children.length;let l=-1;const s=[];for(;++l<a;){const n=t.children[l],r={},a=i?i[l]:void 0;a&&(r.align=a);let c={type:"element",tagName:o,properties:r,children:[]};n&&(c.children=e.all(n),e.patch(n,c),c=e.applyData(n,c)),s.push(c)}const c={type:"element",tagName:"tr",properties:{},children:e.wrap(s,!0)};return e.patch(t,c),e.applyData(t,c)},text:function(e,t){const n={type:"text",value:ls(String(t.value))};return e.patch(t,n),e.applyData(t,n)},thematicBreak:function(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)},toml:us,yaml:us,definition:us,footnoteDefinition:us};function us(){}const ds={}.hasOwnProperty,ps={};function fs(e,t){e.position&&(t.position=function(e){const t=bi(e),n=gi(e);if(t&&n)return{start:t,end:n}}(e))}function ms(e,t){let n=t;if(e&&e.data){const t=e.data.hName,r=e.data.hChildren,o=e.data.hProperties;if("string"===typeof t)if("element"===n.type)n.tagName=t;else{n={type:"element",tagName:t,properties:{},children:"children"in n?n.children:[n]}}"element"===n.type&&o&&Object.assign(n.properties,Yl(o)),"children"in n&&n.children&&null!==r&&void 0!==r&&(n.children=r)}return n}function hs(e,t){const n=t.data||{},r=!("value"in t)||ds.call(n,"hProperties")||ds.call(n,"hChildren")?{type:"element",tagName:"div",properties:{},children:e.all(t)}:{type:"text",value:t.value};return e.patch(t,r),e.applyData(t,r)}function gs(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:"\n"});++r<e.length;)r&&n.push({type:"text",value:"\n"}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:"\n"}),n}function bs(e){let t=0,n=e.charCodeAt(t);for(;9===n||32===n;)t++,n=e.charCodeAt(t);return e.slice(t)}function vs(e,t){const n=function(e,t){const n=t||ps,r=new Map,o=new Map,i=new Map,a={...cs,...n.handlers},l={all:function(e){const t=[];if("children"in e){const n=e.children;let r=-1;for(;++r<n.length;){const o=l.one(n[r],e);if(o){if(r&&"break"===n[r-1].type&&(Array.isArray(o)||"text"!==o.type||(o.value=bs(o.value)),!Array.isArray(o)&&"element"===o.type)){const e=o.children[0];e&&"text"===e.type&&(e.value=bs(e.value))}Array.isArray(o)?t.push(...o):t.push(o)}}}return t},applyData:ms,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:a,one:function(e,t){const n=e.type,r=l.handlers[n];if(ds.call(l.handlers,n)&&r)return r(l,e,t);if(l.options.passThrough&&l.options.passThrough.includes(n)){if("children"in e){const{children:t,...n}=e,r=Yl(n);return r.children=l.all(e),r}return Yl(e)}return(l.options.unknownHandler||hs)(l,e,t)},options:n,patch:fs,wrap:gs};return os(e,(function(e){if("definition"===e.type||"footnoteDefinition"===e.type){const t="definition"===e.type?r:o,n=String(e.identifier).toUpperCase();t.has(n)||t.set(n,e)}})),l}(e,t),r=n.one(e,void 0),o=function(e){const t="string"===typeof e.o
543ptions.clobberPrefix?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||Kl,r=e.options.footnoteBackLabel||ql,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let s=-1;for(;++s<e.footnoteOrder.length;){const o=e.footnoteById.get(e.footnoteOrder[s]);if(!o)continue;const i=e.all(o),a=String(o.identifier).toUpperCase(),c=Wl(a.toLowerCase());let u=0;const d=[],p=e.footnoteCounts.get(a);for(;void 0!==p&&++u<=p;){d.length>0&&d.push({type:"text",value:" "});let e="string"===typeof n?n:n(s,u);"string"===typeof e&&(e={type:"text",value:e}),d.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+c+(u>1?"-"+u:""),dataFootnoteBackref:"",ariaLabel:"string"===typeof r?r:r(s,u),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}const f=i[i.length-1];if(f&&"element"===f.type&&"p"===f.tagName){const e=f.children[f.children.length-1];e&&"text"===e.type?e.value+=" ":f.children.push({type:"text",value:" "}),f.children.push(...d)}else i.push(...d);const m={type:"element",tagName:"li",properties:{id:t+"fn-"+c},children:e.wrap(i,!0)};e.patch(o,m),l.push(m)}if(0!==l.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Yl(a),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:"\n"}]}}(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&i.children.push({type:"text",value:"\n"},o),i}function ys(e,t){return e&&"run"in e?async function(n,r){const o=vs(n,{file:r,...t});await e.run(o,r)}:function(n,r){return vs(n,{file:r,...e||t})}}function xs(e){if(e)throw e}var ws=n(240);function Es(e){if("object"!==typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function _s(){const e=[],t={run:function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];let o=-1;const i=n.pop();if("function"!==typeof i)throw new TypeError("Expected function as last argument, not "+i);!function t(r){const a=e[++o];let l=-1;if(r)i(r);else{for(var s=arguments.length,c=new Array(s>1?s-1:0),u=1;u<s;u++)c[u-1]=arguments[u];for(;++l<n.length;)null!==c[l]&&void 0!==c[l]||(c[l]=n[l]);n=c,a?function(e,t){let n;return o;function o(){for(var t=arguments.length,o=new Array(t),l=0;l<t;l++)o[l]=arguments[l];const s=e.length>o.length;let c;s&&o.push(i);try{c=e.apply(this,o)}catch(r){if(s&&n)throw r;return i(r)}s||(c&&c.then&&"function"===typeof c.then?c.then(a,i):c instanceof Error?i(c):a(c))}function i(e){if(!n){n=!0;for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];t(e,...o)}}function a(e){i(null,e)}}(a,t)(...c):i(null,...c)}}(null,...n)},use:function(n){if("function"!==typeof n)throw new TypeError("Expected `middelware` to be a function, not "+n);return e.push(n),t}};return t}const ks={basename:function(e,t){if(void 0!==t&&"string"!==typeof t)throw new TypeError('"ext" argument must be a string');Ts(e);let n,r=0,o=-1,i=e.length;if(void 0===t||0===t.length||t.length>e.length){for(;i--;)if(47===e.codePointAt(i)){if(n){r=i+1;break}}else o<0&&(n=!0,o=i+1);return o<0?"":e.slice(r,o)}if(t===e)return"";let a=-1,l=t.length-1;for(;i--;)if(47===e.codePointAt(i)){if(n){r=i+1;break}}else a<0&&(n=!0,a=i+1),l>-1&&(e.codePointAt(i)===t.codePointAt(l--)?l<0&&(o=i):(l=-1,o=a));r===o?o=a:o<0&&(o=e.length);return e.slice(r,o)},dirname:function(e){if(Ts(e),0===e.length)return".";let t,n=-1,r=e.length;for(;--r;)if(47===e.codePointAt(r)){if(t){n=r;break}}else t||(t=!0);return n<0?47===e.codePointAt(0)?"/":".":1===n&&47===e.codePointAt(0)?"//":e.slice(0,n)},extname:function(e){Ts(e);let t,n=e.length,r=-1,o=0,i=-1,a=0;for(;n--;){const l=e.codePointAt(n);if(47!==l)r<0&&(t=!0,r=n+1),46===l?i<0?i=n:1!==a&&(a=1):i>-1&&(a=-1);else if(t){o=n+1;break}}if(i<0||r<0||0===a||1===a&&i===r-1&&i===o+1)return"";return e.slice(i,r)},join:function(){let e,t=-1;for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];for(;++t<r.length;)Ts(r[t]),r[t]&&(e=void 0===e?r[t]:e+"/"+r[t]);return void 0===e?".":function(e){Ts(e);const t=47===e.codePointAt(0);let n=function(e,t){let n,r,o="",i=0,a=-1,l=0,s=-1;for(;++s<=e.length;){if(s<e.length)n=e.codePointAt(s);else{if(47===n)break;n=47}if(47===n){if(a===s-1||1===l);else if(a!==s-1&&2===l){if(o.length<2||2!==i||46!==o.codePointAt(o.length-1)||46!==o.codePointAt(o.length-2))if(o.length>2){if(r=o.lastIndexOf("/"),r!==o.length-1){r<0?(o="",i=0):(o=o.slice(0,r),i=o.length-1-o.lastIndexOf("/")),a=s,l=0;continue}}else if(o.length>0){o="",i=0,a=s,l=0;continue}t&&(o=o.length>0?o+"/..":"..",i=2)}else o.length>0?o+="/"+e.slice(a+1,s):o=e.slice(a+1,s),i=s-a-1;a=s,l=0}else 46===n&&l>-1?l++:l=-1}
543return o}(e,!t);0!==n.length||t||(n=".");n.length>0&&47===e.codePointAt(e.length-1)&&(n+="/");return t?"/"+n:n}(e)},sep:"/"};function Ts(e){if("string"!==typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const Cs={cwd:function(){return"/"}};function Ss(e){return Boolean(null!==e&&"object"===typeof e&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&void 0===e.auth)}function Ps(e){if("string"===typeof e)e=new URL(e);else if(!Ss(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if("file:"!==e.protocol){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return function(e){if(""!==e.hostname){const e=new TypeError('File URL host must be "localhost" or empty on darwin');throw e.code="ERR_INVALID_FILE_URL_HOST",e}const t=e.pathname;let n=-1;for(;++n<t.length;)if(37===t.codePointAt(n)&&50===t.codePointAt(n+1)){const e=t.codePointAt(n+2);if(70===e||102===e){const e=new TypeError("File URL path must not include encoded / characters");throw e.code="ERR_INVALID_FILE_URL_PATH",e}}return decodeURIComponent(t)}(e)}const As=["history","path","basename","stem","extname","dirname"];class Rs{constructor(e){let t;t=e?Ss(e)?{path:e}:"string"===typeof e||function(e){return Boolean(e&&"object"===typeof e&&"byteLength"in e&&"byteOffset"in e)}(e)?{value:e}:e:{},this.cwd="cwd"in t?"":Cs.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let n,r=-1;for(;++r<As.length;){const e=As[r];e in t&&void 0!==t[e]&&null!==t[e]&&(this[e]="history"===e?[...t[e]]:t[e])}for(n in t)As.includes(n)||(this[n]=t[n])}get basename(){return"string"===typeof this.path?ks.basename(this.path):void 0}set basename(e){Ls(e,"basename"),Is(e,"basename"),this.path=ks.join(this.dirname||"",e)}get dirname(){return"string"===typeof this.path?ks.dirname(this.path):void 0}set dirname(e){Os(this.basename,"dirname"),this.path=ks.join(e||"",this.basename)}get extname(){return"string"===typeof this.path?ks.extname(this.path):void 0}set extname(e){if(Is(e,"extname"),Os(this.dirname,"extname"),e){if(46!==e.codePointAt(0))throw new Error("`extname` must start with `.`");if(e.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=ks.join(this.dirname,this.stem+(e||""))}get path(){return this.history[this.history.length-1]}set path(e){Ss(e)&&(e=Ps(e)),Ls(e,"path"),this.path!==e&&this.history.push(e)}get stem(){return"string"===typeof this.path?ks.basename(this.path,this.extname):void 0}set stem(e){Ls(e,"stem"),Is(e,"stem"),this.path=ks.join(this.dirname||"",e+(this.extname||""))}fail(e,t,n){const r=this.message(e,t,n);throw r.fatal=!0,r}info(e,t,n){const r=this.message(e,t,n);return r.fatal=void 0,r}
543message(e,t,n){const r=new _i(e,t,n);return this.path&&(r.name=this.path+":"+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}toString(e){if(void 0===this.value)return"";if("string"===typeof this.value)return this.value;return new TextDecoder(e||void 0).decode(this.value)}}function Is(e,t){if(e&&e.includes(ks.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+ks.sep+"`")}function Ls(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function Os(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}const js=function(e){const t=this.constructor.prototype,n=t[e],r=function(){return n.apply(r,arguments)};return Object.setPrototypeOf(r,t),r},zs={}.hasOwnProperty;class Ns extends js{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=_s()}copy(){const e=new Ns;let t=-1;for(;++t<this.attachers.length;){const n=this.attachers[t];e.use(...n)}return e.data(ws(!0,{},this.namespace)),e}data(e,t){return"string"===typeof e?2===arguments.length?(Fs("data",this.frozen),this.namespace[e]=t,this):zs.call(this.namespace,e)&&this.namespace[e]||void 0:e?(Fs("data",this.frozen),this.namespace=e,this):this.namespace}freeze(){if(this.frozen)return this;const e=this;for(;++this.freezeIndex<this.attachers.length;){const[t,...n]=this.attachers[this.freezeIndex];if(!1===n[0])continue;!0===n[0]&&(n[0]=void 0);const r=t.call(e,...n);"function"===typeof r&&this.transformers.use(r)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(e){this.freeze();const t=Bs(e),n=this.parser||this.Parser;return Ds("parse",n),n(String(t),t)}process(e,t){const n=this;return this.freeze(),Ds("process",this.parser||this.Parser),Us("process",this.compiler||this.Compiler),t?r(void 0,t):new Promise(r);function r(r,o){const i=Bs(e),a=n.parse(i);function l(e,n){e||!n?o(e):r?r(n):t(void 0,n)}n.run(a,i,(function(e,t,r){if(e||!t||!r)return l(e);const o=t,i=n.stringify(o,r);var a;"string"===typeof(a=i)||function(e){return Boolean(e&&"object"===typeof e&&"byteLength"in e&&"byteOffset"in e)}(a)?r.value=i:r.result=i,l(e,r)}))}}processSync(e){let t,n=!1;return this.freeze(),Ds("processSync",this.parser||this.Parser),Us("processSync",this.compiler||this.Compiler),this.process(e,(function(e,r){n=!0,xs(e),t=r})),Vs("processSync","process",n),t}run(e,t,n){$s(e),this.freeze();const r=this.transformers;return n||"function"!==typeof t||(n=t,t=void 0),n?o(void 0,n):new Promise(o);function o(o,i){const a=Bs(t);r.run(e,a,(function(t,r,a){const l=r||e;t?i(t):o?o(l):n(void 0,l,a)}))}}runSync(e,t){let n,r=!1;return this.run(e,t,(function(e,t){xs(e),n=t,r=!0})),Vs("runSync","run",r),n}stringify(e,t){this.freeze();const n=Bs(t),r=this.compiler||this.Compiler;return Us("stringify",r),$s(e),r(e,n)}use(e){const t=this.attachers,n=this.namespace;if(Fs("use",this.frozen),null===e||void 0===e);else if("function"===typeof e){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];c(e,o)}else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");Array.isArray(e)?s(e):l(e)}return this;function a(e){if("function"===typeof e)c(e,[]);else{if("object"!==typeof e)throw new TypeError("Expected usable value, not `"+e+"`");if(Array.isArray(e)){const[t,...n]=e;c(t,n)}else l(e)}}function l(e){if(!("plugins"in e)&&!("settings"in e))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");s(e.plugins),e.settings&&(n.settings=ws(!0,n.settings,e.settings))}function s(e){let t=-1;if(null===e||void 0===e);else{if(!Array.isArray(e))throw new TypeError("Expected a list of plugins, not `"+e+"`");for(;++t<e.length;){a(e[t])}}}function c(e,n){let r=-1,o=-1;for(;++r<t.length;)if(t[r][0]===e){o=r;break}if(-1===o)t.push([e,...n]);else if(n.length>0){let[r,...i]=n;const a=t[o][1];Es(a)&&Es(r)&&(r=ws(!0,a,r)),t[o]=[e,r,...i]}}}}const Ms=(new Ns).freeze();function Ds(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `parser`")}function Us(e,t){if("function"!==typeof t)throw new TypeError("Cannot `"+e+"` without `compiler`")}function Fs(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function $s(e){if(!Es(e)||"string"!==typeof e.type)throw new TypeError("Expected node, got `"+e+"`")}function Vs(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function Bs(e){return function(e){return Boolean(e&&"object"===typeof e&&"message"in e&&"messages"in e)}(e)?e:new Rs(e)}const Hs=[],Gs={allowDangerousHtml:!0},Ys=/^(https?|ircs?|mailto|xmpp)$/i,Ws=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function Ks(e){const t=e.allowedElements,n=e.allowElement,r=e.children||"",o=e.className,i=e.components,a=e.disallowedElements,l=e.rehypePlugins||Hs,s=e.remarkPlugins||Hs,c=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...Gs}:Gs,u=e.skipHtml,d=e.unwrapDisallowed,p=e.urlTransform||qs,f=Ms().use(Ml).use(s).use(ys,c).use(l),m=new Rs;"string"===typeof r&&(m.value=r);for(const b of Ws)Object.hasOwn(e,b.from)&&(b.from,b.to&&b.to,b.id);const h=f.parse(m);let g=f.runSync(h,m);return o&&(g={type:"element",tagName:"div",properties:{className:o},children:"root"===g.type?g.children:[g]}),os(g,(function(e,r,o){if("raw"===e.type&&o&&"number"===typeof r)return u?o.children.splice(r,1):o.children[r]={type:"text",value:e.value},r;if("element"===e.type){let t;for(t in Vi)if(Object.hasOwn(Vi,t)&&Object.hasOwn(e.properties,t)){const n=e.properties[t],r=Vi[t];(null===r||r.includes(e.tagName))&&(e.properties[t]=p(String(n||""),t,e))}}if("element"===e.type){let i=t?!t.includes(e.tagName):!!a&&a.includes(e.tagName);if(!i&&n&&"number"===typeof r&&(i=!n(e,r,o)),i&&o&&"number"===typeof r)return d&&e.children?o.children.splice(r,1,...e.children):o.children.splice(r,1),r}})),Ii(g,{Fragment:$r.Fragment,components:i,ignoreInvalidStyle:!0,jsx:$r.jsx,jsxs:$r.jsxs,passKeys:!0,passNode:!0})}function qs(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),o=e.indexOf("/");return t<0||o>-1&&t>o||n>-1&&t>n||r>-1&&t>r||Ys.test(e.slice(0,t))?e:""}const Qs=kr.div`
544  max-width: 1200px;
545  margin: 0 auto;
546  padding: 2rem;
547`,Xs=kr.div`
548  display: flex;
549  justify-content: center;
550  align-items: center;
551  min-height: 400px;
552  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
553`,Js=kr.div`
554  display: flex;
555  flex-direction: column;
556  align-items: center;
557  gap: 1rem;
558  min-height: 400px;
559  justify-content: center;
560  text-align: center;
561  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
562`,Zs=kr.button`
563  display: flex;
564  align-items: center;
565  gap: 0.5rem;
566  background: none;
567  border: none;
568  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
569  cursor: pointer;
570  padding: 0.5rem;
571  margin: -0.5rem;
572  margin-bottom: 2rem;
573  transition: color 0.2s ease;
574
575  &:hover {
576    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
577  }
578
579  i {
580    font-size: 1.25rem;
581  }
582`,ec=kr.header`
583  margin-bottom: 2rem;
584`,tc=kr.div`
585  display: inline-block;
586  background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
587  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
588  padding: 0.25rem 0.75rem;
589  border-radius: 6px;
590  font-size: 0.875rem;
591  font-weight: 500;
592  margin-bottom: 1rem;
593`,nc=kr.h1`
594  font-size: 2.5rem;
595  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
596  margin-bottom: 1rem;
597  line-height: 1.2;
598
599  @media (max-width: 768px) {
600    font-size: 2rem;
601  }
602`,rc=kr.div`
603  display: flex;
604  align-items: center;
605  gap: 0.75rem;
606  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
607  font-size: 0.875rem;
608
609  span {
610    &:nth-child(even) {
611      color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
612    }
613  }
614`,oc=kr.div`
615  margin: 2rem -2rem;
616  
617  img {
618    width: 100%;
619    height: auto;
620    object-fit: cover;
621    border-radius: 8px;
622  }
623
624  @media (max-width: 768px) {
625    margin: 2rem 0;
626  }
627`,ic=kr.article`
628  color: ${e=>{let{theme:t}=e;return t.colors.blue12}};
629  font-size: 1.125rem;
630  line-height: 1.7;
631
632  h2 {
633    font-size: 1.875rem;
634    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
635    margin: 2.5rem 0 1rem;
636  }
637
638  h3 {
639    font-size: 1.5rem;
640    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
641    margin: 2rem 0 1rem;
642  }
643
644  p {
645    margin-bottom: 1.5rem;
646  }
647
648  ul, ol {
649    margin: 1.5rem 0;
650    padding-left: 1.5rem;
651
652    li {
653      margin-bottom: 0.5rem;
654    }
655  }
656
657  blockquote {
658    border-left: 4px solid ${e=>{let{theme:t}=e;return t.colors.blue6}};
659    padding-left: 1rem;
660    margin: 1.5rem 0;
661    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
662    font-style: italic;
663  }
664
665  code {
666    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
667    padding: 0.2em 0.4em;
668    border-radius: 3px;
669    font-size: 0.9em;
670    font-family: monospace;
671  }
672
673  pre {
674    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
675    padding: 1rem;
676    border-radius: 8px;
677    overflow-x: auto;
678    margin: 1.5rem 0;
679
680    code {
681      background: none;
682      padding: 0;
683    }
684  }
685`,ac=kr.div`
686  margin: 2rem 0;
687`,lc=kr.div`
688  position: relative;
689  padding-bottom: 56.25%; /* 16:9 aspect ratio */
690  height: 0;
691  overflow: hidden;
692  border-radius: 8px;
693  
694  iframe {
695    position: absolute;
696    top: 0;
697    left: 0;
698    width: 100%;
699    height: 100%;
700    border: none;
701  }
702`,sc=kr.div`
703  width: 100%;
704  aspect-ratio: 16 / 9;
705  margin: 2rem 0;
706  overflow: hidden;
707  border-radius: 8px;
708  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
709  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
710  
711  iframe {
712    display: block;
713    width: 100%;
714    height: 100%;
715    border: none;
716  }
717`,cc=kr.div`
718  margin: 2rem 0;
719  border-radius: 8px;
720  overflow: hidden;
721  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
722  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
723  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
724`,uc=kr.div`
725  position: relative;
726  height: 800px;
727  width: 100%;
728  
729  iframe {
730    position: absolute;
731    top: 0;
732    left: 0;
733    width: 100%;
734    height: 100%;
735    border: none;
736    background-color: white;
737  }
738
739  @media (max-width: 768px) {
740    height: 500px;
741  }
742`,dc=/<iframe\b[\s\S]*?<\/iframe>/gi,pc=/([a-zA-Z:-]+)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+)))?/g,fc="https://austindavenport.com",mc=(e,t,n)=>{const r=document.querySelector(e);r&&r.setAttribute(t,n)},hc=e=>{const t=new Map;let n;for(pc.lastIndex=0;null!==(n=pc.exec(e));){const[,e,r,o,i]=n;t.set(e.toLowerCase(),r||o||i||"")}const r=t.get("src");if(!r)return null;const o=(e=>{try{const t=new URL(e),n=t.hostname.replace(/^www\./,"");if("https:"!==t.protocol)return null;if(("youtube.com"===n||"youtube-nocookie.com"===n)&&t.pathname.startsWith("/embed/"))return t.toString();if("player.vimeo.com"===n&&t.pathname.startsWith("/video/"))return t.toString()}catch{return null}return null})(r);return o?{src:o,title:t.get("title")||"Embedded video",allow:t.get("allow")||"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"}:null},gc=e=>{const t=[];let n,r=0;for(dc.lastIndex=0;null!==(n=dc.exec(e));){n.index>r&&t.push({type:"markdown",value:e.slice(r,n.index)});const o=hc(n[0]);t.push(o?{type:"iframe",value:o}:{type:"markdown",value:n[0]}),r=n.index+n[0].length}return r<e.length&&t.push({type:"markdown",value:e.slice(r)}),t},bc=()=>{const{slug:e}=function(){let{matches:e}=o.useContext(X),t=e[e.length-1];return t?t.params:{}}(),t=ne(),[n,r]=(0,o.useState)(null),[i,a]=(0,o.useState)(!0),[l,s]=(0,o.useState)(null),c=(0,o.useRef)(Date.now());(0,o.useEffect)((()=>((async()=>{try{if(!e)return void s("No slug provided");const t=await Qr.getPostBySlug(e);if(!t)return void s("Post not found");r(t),document.title=`${t.title} | Austin Davenport`;let n=document.querySelector('link[rel="canonical"]');n||(n=document.createElement("link"),n.setAttribute("rel","canonical"),document.head.appendChild(n));const o=`${fc}/blog/${t.slug}`;n.setAttribute("href",o);const i=t.excerpt||`Read ${t.title} by Austin Davenport.`;mc('meta[name="description"]',"content",i),mc('meta[property="og:url"]',"content",o),mc('meta[property="og:title"]',"content",`${t.title} | Austin Davenport`),mc('meta[property="og:description"]',"content",i),mc('meta[property="og:image"]',"content",t.image_url||`${fc}/social-preview.png`),mc('meta[name="twitter:title"]',"content",`${t.title} | Austin Davenport`),mc('meta[name="twitter:description"]',"content",i),mc('meta[name="twitter:image"]',"content",t.image_url||`${fc}/social-preview.png`)}catch{s("Failed to load blog post")}finally{a(!1)}})(),()=>
742{document.title="Austin Davenport - Video Editor & Developer"})),[e]);return i?(0,$r.jsx)(Qs,{children:(0,$r.jsx)(Xs,{children:"Loading post..."})}):l||!n?(0,$r.jsx)(Qs,{children:(0,$r.jsxs)(Js,{children:[(0,$r.jsx)("div",{children:l||"Post not found"}),(0,$r.jsx)(Wr,{onClick:()=>t("/blog"),children:"Back to Blog"})]})}):(0,$r.jsxs)(Qs,{children:[(0,$r.jsxs)(Zs,{onClick:()=>t("/blog"),children:[(0,$r.jsx)("i",{className:"bx bx-arrow-left"}),"Back to Blog"]}),(0,$r.jsxs)(ec,{children:[(0,$r.jsx)(tc,{children:n.category}),(0,$r.jsx)(nc,{children:n.title}),(0,$r.jsxs)(rc,{children:[(0,$r.jsx)("span",{children:(e=>{try{return new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"numeric"}).format(new Date(e))}catch{return e}})(n.published_at)}),(0,$r.jsx)("span",{children:"\u2022"}),(0,$r.jsxs)("span",{children:[n.read_time," min read"]})]})]}),n.youtube_video_id&&(0,$r.jsx)(ac,{children:(0,$r.jsx)(lc,{children:(0,$r.jsx)("iframe",{src:`https://www.youtube.com/embed/${n.youtube_video_id}`,title:"YouTube video",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})}),n.html_code&&(0,$r.jsx)(cc,{children:(0,$r.jsx)(uc,{children:(0,$r.jsx)("iframe",{title:n.title,srcDoc:n.html_code,sandbox:"allow-scripts allow-same-origin allow-forms allow-modals allow-popups",allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",style:{border:"none"}},c.current)})}),"building-my-own-vidiq"===n.slug&&(0,$r.jsx)(oc,{children:(0,$r.jsx)("img",{src:"https://64.media.tumblr.com/b9cb3f62418a53c348cd0b6c94167594/c67fe3c718b47b53-02/s1280x1920/c96e10ff077c04eb4c5dab7ddf48c73c86f24653.pnj",alt:"Building My Own VidIQ",loading:"eager"})}),(0,$r.jsx)(ic,{children:gc(n.content).map(((e,t)=>"markdown"===e.type?(0,$r.jsx)(Ks,{children:e.value},`markdown-${t}`):(0,$r.jsx)(sc,{children:(0,$r.jsx)("iframe",{src:e.value.src,title:e.value.title,allow:e.value.allow,allowFullScreen:!0,loading:"lazy",referrerPolicy:"strict-origin-when-cross-origin"})},`iframe-${t}`)))})]})},vc=kr.div`
743  padding: 3rem 1rem;
744  max-width: 1200px;
745  margin: 0 auto;
746  min-height: 100vh;
747  display: flex;
748  flex-direction: column;
749
750  @media (max-width: 768px) {
751    padding: 1.5rem 1rem 2rem;
752    min-height: unset;
753  }
754`,yc=kr.div`
755  display: grid;
756  grid-template-columns: 1fr 1.5fr;
757  gap: 4rem;
758  align-items: start;
759
760  @media (max-width: 968px) {
761    grid-template-columns: 1fr;
762    gap: 2rem;
763  }
764
765  @media (max-width: 480px) {
766    gap: 1.25rem;
767  }
768`,xc=kr.div`
769  position: sticky;
770  top: 2rem;
771
772  @media (max-width: 968px) {
773    position: static;
774    margin-bottom: 0;
775  }
776`,wc=kr.h1`
777  font-size: 2.5rem;
778  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
779  margin-bottom: 1rem;
780
781  @media (max-width: 768px) {
782    font-size: 1.75rem;
783    margin-bottom: 0.75rem;
784  }
785
786  @media (max-width: 480px) {
787    font-size: 1.5rem;
788  }
789`,Ec=kr.p`
790  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
791  font-size: 1.1rem;
792  line-height: 1.6;
793  margin-bottom: 2rem;
794
795  @media (max-width: 768px) {
796    font-size: 0.9rem;
797    margin-bottom: 1.25rem;
798    line-height: 1.5;
799  }
800`,_c=kr.div`
801  display: flex;
802  flex-direction: column;
803  gap: 1.5rem;
804  margin-bottom: 2rem;
805
806  @media (max-width: 768px) {
807    gap: 0.875rem;
808    margin-bottom: 1.25rem;
809  }
810`,kc=kr.div`
811  display: flex;
812  align-items: center;
813  gap: 1rem;
814
815  i {
816    font-size: 1.5rem;
817    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
818    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
819    padding: 0.75rem;
820    border-radius: 12px;
821    min-width: 3rem;
822    text-align: center;
823  }
824
825  h3 {
826    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
827    font-size: 1rem;
828    margin-bottom: 0.25rem;
829  }
830
831  p {
832    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
833    font-size: 0.9rem;
834  }
835
836  @media (max-width: 768px) {
837    gap: 0.75rem;
838
839    i {
840      font-size: 1.25rem;
841      padding: 0.6rem;
842      min-width: 2.5rem;
843      border-radius: 10px;
844    }
845
846    h3 {
847      font-size: 0.9rem;
848      margin-bottom: 0.125rem;
849    }
850
851    p {
852      font-size: 0.8rem;
853    }
854  }
855`,Tc=kr.div`
856  display: flex;
857  gap: 1rem;
858
859  a {
860    width: 40px;
861    height: 40px;
862    display: flex;
863    align-items: center;
864    justify-content: center;
865    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
866    border-radius: 8px;
867    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
868    transition: all 0.2s ease;
869
870    &:hover {
871      background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
872      transform: translateY(-2px);
873    }
874
875    i {
876      font-size: 1.25rem;
877    }
878  }
879`,Cc=kr.form`
880  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
881  padding: 2rem;
882  border-radius: 16px;
883  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
884
885  @media (max-width: 768px) {
886    padding: 1.25rem;
887    border-radius: 14px;
888  }
889
890  @media (max-width: 480px) {
891    /* Make submit button full-width on small screens */
892    > button {
893      width: 100%;
894      justify-content: center;
895    }
896  }
897`,Sc=kr.div`
898  margin-bottom: 1.5rem;
899
900  @media (max-width: 480px) {
901    margin-bottom: 1.125rem;
902  }
903`,Pc=kr.label`
904  display: block;
905  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
906  margin-bottom: 0.5rem;
907  font-size: 0.9rem;
908  font-family: 'Poppins', sans-serif;
909`,Ac=kr.div`
910  background: ${e=>{let{theme:t}=e;return`${t.colors.red3}`}};
911  color: ${e=>{let{theme:t}=e;return`${t.colors.red11}`}};
912  padding: 1rem;
913  border-radius: 8px;
914  margin-bottom: 1.5rem;
915  font-family: 'Poppins', sans-serif;
916  border: 1px solid ${e=>{let{theme:t}=e;return`${t.colors.red7}`}};
917  font-size: 0.9rem;
918`,Rc=kr.input`
919  font-family: 'Poppins', sans-serif;
920  width: 100%;
921  padding: 0.75rem;
922  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
923  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
924  border-radius: 8px;
925  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
926  font-size: 1rem;
927  transition: all 0.2s ease;
928  -webkit-appearance: none; // Fix for iOS default styles
929  appearance: none;
930
931  &:focus {
932    outline: none;
933    border-color: ${e=>{let{theme:t}=e;return t.colors.blue6}};
934  }
935`,Ic=kr.select`
936  font-family: 'Poppins', sans-serif;
937  width: 100%;
938  padding: 0.75rem;
939  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
940  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
941  border-radius: 8px;
942  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
943  font-size: 1rem;
944  cursor: pointer;
945  -webkit-appearance: none; // Fix for iOS default styles
946  appearance: none;
947  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
948  background-repeat: no-repeat;
949  background-position: right 1rem center;
950  background-size: 1em;
951  padding-right: 2.5rem;
952
953  &:focus {
954    outline: none;
955    border-color: ${e=>{let{theme:t}=e;return t.colors.blue6}};
956  }
957`,Lc=kr.textarea`
958  font-family: 'Poppins', sans-serif;
959  width: 100%;
960  padding: 0.75rem;
961  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
962  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
963  border-radius: 8px;
964  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
965  font-size: 1rem;
966  resize: vertical;
967  min-height: 120px;
968  -webkit-appearance: none; // Fix for iOS default styles
969  appearance: none;
970
971  &:focus {
972    outline: none;
973    border-color: ${e=>{let{theme:t}=e;return t.colors.blue6}};
974  }
975`,Oc=Sr`
976  from { opacity: 0; }
977  to { opacity: 1; }
978`,jc=Sr`
979  from { transform: translate(-50%, 100%); }
980  to { transform: translate(-50%, -50%); }
981`,zc=kr.div`
982  position: fixed;
983  top: 0;
984  left: 0;
985  right: 0;
986  bottom: 0;
987  background: rgba(0, 0, 0, 0.7);
988  z-index: 1000;
989  animation: ${Oc} 0.3s ease;
990  display: flex;
991  align-items: center;
992  justify-content: center;
993`,Nc=kr.div`
994  position: fixed;
995  top: 50%;
996  left: 50%;
997  transform: translate(-50%, -50%);
998  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
999  padding: 2rem;
1000  border-radius: 16px;
1001  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
1002  max-width: 400px;
1003  width: 90%;
1004  text-align: center;
1005  animation: ${jc} 0.3s ease;
1006`,Mc=kr.div`
1007  width: 60px;
1008  height: 60px;
1009  border-radius: 50%;
1010  background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
1011  display: flex;
1012  align-items: center;
1013  justify-content: center;
1014  margin: 0 auto 1.5rem;
1015  
1016  i {
1017    font-size: 2rem;
1018    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
1019  }
1020`,Dc=kr.h3`
1021  font-size: 1.5rem;
1022  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
1023  margin-bottom: 1rem;
1024  font-family: 'Poppins', sans-serif;
1025`,Uc=kr.p`
1026  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
1027  margin-bottom: 1.5rem;
1028  line-height: 1.6;
1029  font-family: 'Poppins', sans-serif;
1030`,Fc=kr.button`
1031  padding: 0.75rem 2rem;
1032  background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
1033  border: none;
1034  border-radius: 8px;
1035  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
1036  font-size: 1rem;
1037  cursor: pointer;
1038  transition: all 0.2s ease;
1039  font-family: 'Poppins', sans-serif;
1040
1041  &:hover {
1042    background: ${e=>{let{theme:t}=e;return t.colors.blue5}};
1043  }
1044`,$c=e=>{let{onClose:t}=e;return(0,$r.jsx)(zc,{onClick:t,children:(0,$r.jsxs)(Nc,{onClick:e=>e.stopPropagation(),children:[(0,$r.jsx)(Mc,{children:(0,$r.jsx)("i",{className:"bx bx-check"})}),(0,$r.jsx)(Dc,{children:"Message Sent Successfully!"}
1044),(0,$r.jsx)(Uc,{children:"Thank you for reaching out. I'll get back to you as soon as possible."}),(0,$r.jsx)(Fc,{onClick:t,children:"Close"})]})})},Vc=()=>{Co({title:"Contact | Austin Davenport",description:"Contact Austin Davenport for professional video editing, business inquiries, employment opportunities, and relevant collaborations.",path:"/contact"});const[e,t]=(0,o.useState)({name:"",email:"",project:"",message:""}),[n,r]=(0,o.useState)(!1),[i,a]=(0,o.useState)(!1),[l,s]=(0,o.useState)(null),c=e=>{t((t=>({...t,[e.target.name]:e.target.value}))),s(null)};return(0,$r.jsxs)(vc,{children:[(0,$r.jsxs)(yc,{children:[(0,$r.jsxs)(xc,{children:[(0,$r.jsx)(wc,{children:"Let's Work Together"}),(0,$r.jsx)(Ec,{children:"Looking for professional video editing services? I'd love to help bring your vision to life. Whether it's a YouTube video, commercial, or creative project, let's create something amazing."}),(0,$r.jsxs)(_c,{children:[(0,$r.jsxs)(kc,{children:[(0,$r.jsx)("i",{className:"bx bx-time-five"}),(0,$r.jsxs)("div",{children:[(0,$r.jsx)("h3",{children:"Response Time"}),(0,$r.jsx)("p",{children:"Usually within 24 hours"})]})]}),(0,$r.jsxs)(kc,{children:[(0,$r.jsx)("i",{className:"bx bx-map"}),(0,$r.jsxs)("div",{children:[(0,$r.jsx)("h3",{children:"Location"}),(0,$r.jsx)("p",{children:"United States"})]})]})]}),(0,$r.jsx)(Tc,{children:(0,$r.jsx)("a",{href:"https://www.youtube.com/@AustinDavenport",target:"_blank",rel:"noopener noreferrer",children:(0,$r.jsx)("i",{className:"bx bxl-youtube"})})})]}),(0,$r.jsxs)(Cc,{onSubmit:async n=>{n.preventDefault(),r(!0),s(null);try{await(async e=>{const t=await fetch("https://submit-form.com/1m9zol5tO",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({name:e.name,email:e.email,project_type:e.project,message:e.message})});if(!t.ok)throw new Error(`Form submission failed: ${t.status}`);return{success:!0}})(e),t({name:"",email:"",project:"",message:""}),a(!0)}catch{s("There was an error sending your message. Please try again.")}finally{r(!1)}},children:[l&&(0,$r.jsx)(Ac,{children:l}),(0,$r.jsxs)(Sc,{children:[(0,$r.jsx)(Pc,{htmlFor:"name",children:"Name"}),(0,$r.jsx)(Rc,{id:"name",type:"text",name:"name",value:e.name,onChange:c,required:!0})]}),(0,$r.jsxs)(Sc,{children:[(0,$r.jsx)(Pc,{htmlFor:"email",children:"Email"}),(0,$r.jsx)(Rc,{id:"email",type:"email",name:"email",value:e.email,onChange:c,required:!0})]}),(0,$r.jsxs)(Sc,{children:[(0,$r.jsx)(Pc,{htmlFor:"project",children:"Project Type"}),(0,$r.jsxs)(Ic,{id:"project",name:"project",value:e.project,onChange:c,required:!0,children:[(0,$r.jsx)("option",{value:"",children:"Select a project type"}),(0,$r.jsx)("option",{value:"sponsorship",children:"Sponsorship"}),(0,$r.jsx)("option",{value:"youtube",children:"YouTube Video"}),(0,$r.jsx)("option",{value:"music",children:"Music Video"}),(0,$r.jsx)("option",{value:"gaming",children:"Gaming Content"}),(0,$r.jsx)("option",{value:"other",children:"Other"})]})]}),(0,$r.jsxs)(Sc,{children:[(0,$r.jsx)(Pc,{htmlFor:"message",children:"Message"}),(0,$r.jsx)(Lc,{id:"message",name:"message",value:e.message,onChange:c,rows:5,required:!0})]}),(0,$r.jsx)(Wr,{type:"submit",disabled:n,children:n?(0,$r.jsxs)($r.Fragment,{children:[(0,$r.jsx)("i",{className:"bx bx-loader-alt bx-spin"}),"Sending..."]}):(0,$r.jsxs)($r.Fragment,{children:[(0,$r.jsx)("i",{className:"bx bx-send"}),"Send Message"]})})]})]}),i&&(0,$r.jsx)($c,{onClose:()=>a(!1)})]})};function Bc(){return"undefined"!==typeof window}function Hc(){try{const e="production";if("development"===e||"test"===e)return"development"}catch(Fh){}return"production"}function Gc(){return(Bc()?window.vam:Hc())||"production"}function Yc(){return"production"===Gc()}function Wc(){return"development"===Gc()}function Kc(e,t){let{[e]:n,...r}=t;return r}function qc(e,t,n){var r,o;if(Bc())if(t)try{const r=function(e,t){if(!e)return;let n=e;const r=[];for(const[o,i]of Object.entries(e))"object"===typeof i&&null!==i&&(t.strip?n=Kc(o,n):r.push(o));if(r.length>0&&!t.strip)throw Error(`The following properties are not valid: ${r.join(", ")}. Only strings, numbers, booleans, and null are allowed.`);return n}
1044(t,{strip:Yc()});null==(o=window.va)||o.call(window,"event",{name:e,data:r,options:n})}catch(i){i instanceof Error&&Wc()&&console.error(i)}else null==(r=window.va)||r.call(window,"event",{name:e,options:n});else{const e="[Vercel Web Analytics] Please import `track` from `@vercel/analytics/server` when using this function in a server environment";if(!Yc())throw new Error(e);console.warn(e)}}const Qc=()=>((0,o.useEffect)((()=>{qc("extra_links_redirected",{source_page:"extra-links"})}),[]),(0,$r.jsx)(ye,{to:"/links",replace:!0})),Xc=Cr`
1045  :root {
1046    --blue0:rgb(13, 14, 16);
1047    --blue1: #0F1113;
1048    --blue2: #151719;
1049    --blue3: #1F2123;
1050    --blue4: #292B2D;
1051    --blue5: #353739;
1052    --blue6: #46484A;
1053    --gray1: #212326;
1054    --gray2: #282a2d;
1055    --gray3: #333336;
1056    --blue9: #EAECEE;
1057    --blue11: #B1B4B8;
1058    
1059    --project1: #FF006E;
1060    --project2: #FB5607;
1061    --project3: #FFBE0B;
1062    --project4:rgb(114, 75, 170);
1063    --project5: #8338EC;
1064    --project6: #06D6A0;
1065  }
1066  
1067  * {
1068    box-sizing: border-box;
1069  }
1070  
1071  body {
1072    margin: 0;
1073    padding: 0;
1074    font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
1075    background-color: var(--blue1);
1076    color: var(--blue9);
1077    line-height: 1.5;
1078    overflow-x: hidden;
1079  }
1080`,Jc=kr.div`
1081  max-width: 1200px;
1082  margin: .75rem auto;
1083  padding: 0 2rem;
1084  
1085  
1086  @media (max-width: 768px) {
1087    padding: 0 1rem;
1088    margin: 0.5rem auto 1rem;
1089  }
1090  
1091  @media (max-width: 480px) {
1092    padding: 0 1rem;
1093    margin: 0.35rem auto 1rem;
1094  }
1095`,Zc=kr.section`
1096  padding: 2rem 0;
1097  
1098  @media (max-width: 768px) {
1099    padding: 1.75rem 0 2.5rem;
1100  }
1101  
1102  @media (max-width: 480px) {
1103    padding: 1rem 0 2rem;
1104  }
1105`,eu=kr.div`
1106  background-color: var(--blue0);
1107  border-radius: 16px;
1108  border: 1px solid var(--blue3);
1109  overflow: hidden;
1110  position: relative;
1111  isolation: isolate;
1112
1113  &::after {
1114    content: '';
1115    position: absolute;
1116    inset: 0;
1117    background:
1118      radial-gradient(circle at 28% 48%, rgba(15, 17, 19, 0.1), rgba(15, 17, 19, 0.82) 76%),
1119      linear-gradient(90deg, rgba(15, 17, 19, 0.68), rgba(15, 17, 19, 0.36));
1120    pointer-events: none;
1121    z-index: -1;
1122  }
1123`,tu=kr.video`
1124  position: absolute;
1125  inset: 0;
1126  width: 100%;
1127  height: 100%;
1128  object-fit: cover;
1129  opacity: 0.28;
1130  pointer-events: none;
1131  z-index: -2;
1132`,nu=kr.div`
1133  position: relative;
1134  z-index: 1;
1135  padding: 3rem;
1136  display: flex;
1137  align-items: center;
1138  justify-content: center;
1139  min-height: 400px;
1140  
1141  @media (max-width: 768px) {
1142    padding: 2rem;
1143    min-height: auto;
1144  }
1145  
1146  @media (max-width: 480px) {
1147    padding: 1.5rem;
1148  }
1149`,ru=kr.div`
1150  display: grid;
1151  grid-template-columns: auto 1fr;
1152  gap: 4rem;
1153  align-items: center;
1154  width: 100%;
1155  max-width: 1000px;
1156  
1157  @media (max-width: 768px) {
1158    grid-template-columns: 1fr;
1159    gap: 2rem;
1160    text-align: center;
1161  }
1162`,ou=kr.div`
1163  display: flex;
1164  align-items: center;
1165  justify-content: center;
1166`,iu=kr.img`
1167  width: 280px;
1168  height: 280px;
1169  border-radius: 16px;
1170  object-fit: cover;
1171  border: 1px solid var(--blue3);
1172  
1173  @media (max-width: 768px) {
1174    width: 200px;
1175    height: 200px;
1176  }
1177  
1178  @media (max-width: 480px) {
1179    width: 120px;
1180    height: 120px;
1181  }
1182`,au=kr.div`
1183  display: flex;
1184  flex-direction: column;
1185  justify-content: center;
1186  
1187  @media (max-width: 768px) {
1188    align-items: center;
1189  }
1190`,lu=kr.h1`
1191  font-size: 3rem;
1192  font-weight: 700;
1193  margin: 0 0 0.5rem;
1194  color: var(--blue9);
1195
1196  @media (max-width: 768px) {
1197    font-size: 2rem;
1198  }
1199
1200  @media (max-width: 480px) {
1201    font-size: 1.75rem;
1202  }
1203`,su=kr.h2`
1204  font-size: 1.25rem;
1205  font-weight: 500;
1206  margin: 0 0 1rem;
1207  color: var(--gray3);
1208  
1209  @media (max-width: 480px) {
1210    font-size: 1.1rem;
1211  }
1212`,cu=kr.p`
1213  font-size: 1.1rem;
1214  color: var(--blue11);
1215  margin: 0 0 2rem;
1216  max-width: 600px;
1217  line-height: 1.6;
1218  
1219  @media (max-width: 768px) {
1220    font-size: 1rem;
1221    margin: 0 auto 2rem;
1222    text-align: center;
1223  }
1224`,uu=kr.div`
1225  display: flex;
1226  gap: 2rem;
1227  margin-bottom: 2rem;
1228  align-items: center;
1229  
1230  @media (max-width: 768px) {
1231    justify-content: center;
1232    gap: 1.5rem;
1233  }
1234  
1235  @media (max-width: 480px) {
1236    flex-direction: row;
1237    justify-content: center;
1238    align-items: center;
1239    gap: 1rem;
1240    margin-bottom: 1.5rem;
1241  }
1242`,du=kr.div`
1243  display: flex;
1244  align-items: center;
1245  gap: 0.5rem;
1246  
1247  i {
1248    font-size: 1.25rem;
1249    color: var(--gray3);
1250  }
1251  
1252  span {
1253    font-weight: 600;
1254    color: var(--blue9);
1255  }
1256`,pu=kr.div`
1257  display: flex;
1258  gap: 1rem;
1259  
1260  @media (max-width: 768px) {
1261    justify-content: center;
1262  }
1263  
1264  @media (max-width: 480px) {
1265    flex-direction: column;
1266  }
1267`,fu=kr.button`
1268  background-color: var(--gray1);
1269  color: var(--blue9);
1270  border: none;
1271  border-radius: 8px;
1272  padding: 0.75rem 1.5rem;
1273  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
1274  font-size: 0.9rem;
1275  font-weight: 500;
1276  display: flex;
1277  align-items: center;
1278  gap: 0.5rem;
1279  cursor: pointer;
1280  transition: all 0.2s ease;
1281  text-decoration: none;
1282  
1283  i {
1284    font-size: 1.1rem;
1285  }
1286  
1287  &:hover {
1288    background-color: var(--gray2);
1289    transform: translateY(-2px);
1290  }
1291`,mu=kr(fu)`
1292  background-color: var(--blue3);
1293  
1294  &:hover {
1295    background-color: var(--gray2);
1296    opacity: 0.9;
1297  }
1298`,hu=kr(fu)`
1299  background-color: transparent;
1300  border: 1px solid var(--gray2);
1301  
1302  &:hover {
1303    background-color: var(--blue2);
1304    border-color: var(--gray3);
1305  }
1306`,gu=kr.section`
1307  margin-bottom: 4rem;
1308  margin-top: 1.2rem;
1309  
1310  @media (max-width: 768px) {
1311    margin-bottom: 2.5rem;
1312  }
1313  
1314  @media (max-width: 480px) {
1315    margin-bottom: 3.5rem;
1316  }
1317`,bu=kr.div`
1318  display: flex;
1319  justify-content: space-between;
1320  align-items: center;
1321  margin-bottom: 2rem;
1322  
1323  h2 {
1324    font-size: 1.75rem;
1325    font-weight: 600;
1326    margin: 0;
1327    color: var(--blue9);
1328  }
1329  
1330  @media (max-width: 480px) {
1331    h2 {
1332      font-size: 1.5rem;
1333    }
1334  }
1335`,vu=kr.a`
1336  display: flex;
1337  align-items: center;
1338  gap: 0.5rem;
1339  color: var(--blue11);
1340  font-size: 0.9rem;
1341  font-weight: 500;
1342  text-decoration: none;
1343  transition: color 0.2s ease;
1344  
1345  i {
1346    font-size: 1.1rem;
1347  }
1348  
1349  &:hover {
1350    color: var(--blue9);
1351  }
1352`,yu=kr.div`
1353  display: grid;
1354  grid-template-columns: repeat(4, 1fr);
1355  gap: 1.5rem;
1356
1357  @media (max-width: 992px) {
1358    grid-template-columns: repeat(2, 1fr);
1359  }
1360
1361  @media (max-width: 480px) {
1362    grid-template-columns: repeat(2, 1fr);
1363    gap: 0.75rem;
1364  }
1365`,xu=kr.div`
1366  background-color: var(--blue2);
1367  border-radius: 12px;
1368  overflow: hidden;
1369  border: 1px solid var(--blue3);
1370  transition: all 0.3s ease;
1371  cursor: pointer;
1372  
1373  &:hover {
1374    transform: translateY(-5px);
1375    border-color: var(--blue6);
1376    
1377    > div:first-child > div {
1378      opacity: 1;
1379    }
1380  }
1381`,wu=kr.div`
1382  width: 100%;
1383  aspect-ratio: 16/9;
1384  background-size: cover;
1385  background-position: center;
1386  position: relative;
1387`,Eu=kr.div`
1388  position: absolute;
1389  top: 0;
1390  left: 0;
1391  width: 100%;
1392  height: 100%;
1393  background-color: rgba(15, 17, 19, 0.5);
1394  display: flex;
1395  align-items: center;
1396  justify-content: center;
1397  opacity: 0;
1398  transition: opacity 0.3s ease;
1399  
1400  i {
1401    font-size: 3rem;
1402    color: white;
1403  }
1404`,_u=kr.div`
1405  padding: 1rem;
1406
1407  @media (max-width: 480px) {
1408    padding: 0.625rem 0.75rem;
1409  }
1410`,ku=kr.h3`
1411  margin: 0 0 0.5rem;
1412  font-size: 1rem;
1413  font-weight: 500;
1414  color: var(--blue9);
1415
1416  @media (max-width: 480px) {
1417    font-size: 0.8rem;
1418    margin-bottom: 0.25rem;
1419  }
1420`,Tu=kr.span`
1421  font-size: 0.85rem;
1422  color: var(--blue11);
1423
1424  @media (max-width: 480px) {
1425    font-size: 0.7rem;
1426  }
1427`,Cu=kr.div`
1428  display: grid;
1429  grid-template-columns: repeat(3, 1fr);
1430  gap: 1.5rem;
1431  
1432  @media (max-width: 992px) {
1433    grid-template-columns: repeat(2, 1fr);
1434  }
1435  
1436  @media (max-width: 480px) {
1437    grid-template-columns: 1fr;
1438  }
1439`,Su=kr.div`
1440  background-color: var(--blue2);
1441  border-radius: 12px;
1442  overflow: hidden;
1443  border: 1px solid var(--blue3);
1444  border-top-width: 4px;
1445  display: flex;
1446  flex-direction: column;
1447`,Pu=kr.div`
1448  width: 100%;
1449  height: 250px;
1450  background-size: cover;
1451  background-position: center;
1452`,Au=kr.div`
1453  padding: 1.25rem;
1454  flex-grow: 1;
1455  display: flex;
1456  flex-direction: column;
1457`,Ru=kr.h3`
1458  margin: 0 0 0.5rem;
1459  font-size: 1.1rem;
1460  font-weight: 600;
1461  color: var(--blue9);
1462`,Iu=kr.p`
1463  margin: 0;
1464  font-size: 0.9rem;
1465  color: var(--blue11);
1466`,Lu=kr.div`
1467  background-color: var(--blue2);
1468  border-radius: 16px;
1469  border: 1px solid var(--blue3);
1470  overflow: visible;
1471`,Ou=kr.div`
1472  padding: 2rem;
1473  
1474  @media (max-width: 768px) {
1475    padding: 1.5rem;
1476  }
1477`,ju=kr.div`
1478  text-align: center;
1479  margin-bottom: 2rem;
1480  
1481  h2 {
1482    font-size: 1.75rem;
1483    font-weight: 600;
1484    margin: 0 0 0.5rem;
1485    color: var(--blue9);
1486  }
1487  
1488  p {
1489    color: var(--blue11);
1490    font-size: 1rem;
1491    margin: 0;
1492    line-height: 1.5;
1493  }
1494  
1495  @media (max-width: 480px) {
1496    h2 {
1497      font-size: 1.5rem;
1498    }
1499    
1500    p {
1501      font-size: 0.9rem;
1502    }
1503  }
1504`,zu=Sr`
1505  from {
1506    transform: translateX(0);
1507  }
1508
1509  to {
1510    transform: translateX(-50%);
1511  }
1512`,Nu=kr.div`
1513  position: relative;
1514  display: flex;
1515  width: max-content;
1516  z-index: ${e=>{let{$rowIndex:t}=e;return 1===t?2:1}};
1517  filter: ${e=>{let{$rowIndex:t}=e;return 1===t?"drop-shadow(0 20px 28px rgba(0, 0, 0, 0.42))":"none"}};
1518  animation: ${zu} ${e=>{let{$rowIndex:t}=e;return 34+6*t}}s linear infinite;
1519  animation-direction: ${e=>{let{$rowIndex:t}=e;return t%2===1?"reverse":"normal"}};
1520  will-change: transform;
1521
1522  @media (prefers-reduced-motion: reduce) {
1523    width: 100%;
1524    flex-wrap: wrap;
1525    justify-content: center;
1526    animation: none;
1527    transform: none;
1528
1529    [data-duplicate='true'] {
1530      display: none;
1531    }
1532  }
1533`,Mu=kr.div`
1534  display: flex;
1535  flex-direction: column;
1536  gap: 0.8rem;
1537  overflow: hidden;
1538  padding: 4.5rem 0 4.25rem;
1539  margin: -2rem -2rem 0;
1540  -webkit-mask-image: linear-gradient(
1541    to right,
1542    transparent 0%,
1543    #000 12%,
1544    #000 88%,
1545    transparent 100%
1546  );
1547  mask-image: linear-gradient(
1548    to right,
1549    transparent 0%,
1550    #000 12%,
1551    #000 88%,
1552    transparent 100%
1553  );
1554
1555  &:hover ${Nu},
1556  &:focus-within ${Nu} {
1557    animation-play-state: paused;
1558  }
1559
1560  @media (max-width: 768px) {
1561    margin-inline: -1.5rem;
1562  }
1563
1564  @media (prefers-reduced-motion: reduce) {
1565    -webkit-mask-image: none;
1566    mask-image: none;
1567  }
1568`,Du=kr.div`
1569  position: absolute;
1570  ${e=>{let{$placement:t}=e;return"below"===t?"top: calc(100% + 12px);":"bottom: calc(100% + 12px);"}}
1571  left: 50%;
1572  transform: ${e=>{let{$placement:t}=e;return"below"===t?"translate(-50%, -6px)":"translate(-50%, 6px)"}};
1573  opacity: 0;
1574  pointer-events: none;
1575  white-space: nowrap;
1576  z-index: 8;
1577  background-color: #f5f5f7;
1578  color: #17171d;
1579  border-radius: 10px;
1580  padding: 0.45rem 0.65rem;
1581  font-size: 0.75rem;
1582  font-weight: 600;
1583  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
1584  transition:
1585    opacity 200ms ease,
1586    transform 250ms cubic-bezier(.2, .7, .2, 1);
1587
1588  &::after {
1589    content: '';
1590    position: absolute;
1591    ${e=>{let{$placement:t}=e;return"below"===t?"bottom: 100%;":"top: 100%;"}}
1592    left: 50%;
1593    transform: translateX(-50%);
1594    width: 0;
1595    height: 0;
1596    border-left: 7px solid transparent;
1597    border-right: 7px solid transparent;
1598    ${e=>{let{$placement:t}=e;return"below"===t?"border-bottom: 7px solid #f5f5f7;":"border-top: 7px solid #f5f5f7;"}}
1599  }
1600`,Uu=kr.span`
1601  color: #d8a05a;
1602`,Fu=kr.div`
1603  position: relative;
1604  display: flex;
1605  align-items: center;
1606  gap: 0.75rem;
1607  flex: 0 0 auto;
1608  width: 210px;
1609  min-height: 68px;
1610  margin-right: 0.75rem;
1611  padding: 0.75rem;
1612  background-color: var(--blue3);
1613  border: 1px solid #22232a;
1614  border-radius: 10px;
1615  transition:
1616    transform 350ms cubic-bezier(.2, .7, .2, 1),
1617    border-color 350ms cubic-bezier(.2, .7, .2, 1),
1618    background-color 350ms cubic-bezier(.2, .7, .2, 1);
1619
1620  &:nth-child(odd) {
1621    transform: translateY(-8px);
1622  }
1623
1624  &:nth-child(even) {
1625    transform: translateY(8px);
1626  }
1627
1628  &:hover,
1629  &:focus-visible {
1630    z-index: 7;
1631    border-color: oklch(0.78 0.14 70 / 0.5);
1632    background-color: #1b1b21;
1633  }
1634
1635  &:nth-child(odd):hover,
1636  &:nth-child(odd):focus-visible {
1637    transform: translateY(calc(-8px - 6px)) scale(1.04);
1638  }
1639
1640  &:nth-child(even):hover,
1641  &:nth-child(even):focus-visible {
1642    transform: translateY(calc(8px - 6px)) scale(1.04);
1643  }
1644
1645  &:hover ${Du},
1646  &:focus-visible ${Du} {
1647    opacity: 1;
1648    transform: translate(-50%, 0);
1649  }
1650
1651  &:focus-visible {
1652    outline: 2px solid oklch(0.78 0.14 70 / 0.55);
1653    outline-offset: 3px;
1654  }
1655
1656  @media (max-width: 480px) {
1657    width: 230px;
1658  }
1659`,$u=kr.img`
1660  flex-shrink: 0;
1661  width: 42px;
1662  height: 42px;
1663  border-radius: 50%;
1664  object-fit: cover;
1665  border: 2px solid var(--blue4);
1666`,Vu=kr.div`
1667  flex-shrink: 0;
1668  width: 42px;
1669  height: 42px;
1670  border-radius: 50%;
1671  border: 2px solid var(--blue4);
1672  background-color: var(--gray1);
1673  color: var(--blue9);
1674  display: flex;
1675  align-items: center;
1676  justify-content: center;
1677  font-size: 0.8rem;
1678  font-weight: 700;
1679`,Bu=kr.div`
1680  flex: 1;
1681  font-weight: 600;
1682  font-size: 0.9rem;
1683  color: var(--blue9);
1684  line-height: 1.2;
1685  min-width: 0;
1686  overflow-wrap: anywhere;
1687
1688  @media (max-width: 768px) {
1689    font-size: 0.85rem;
1690  }
1691`,Hu=kr.div`
1692  display: grid;
1693  grid-template-columns: repeat(4, 1fr);
1694  gap: 1rem;
1695  margin-bottom: 1.5rem;
1696
1697  @media (max-width: 768px) {
1698    grid-template-columns: repeat(2, 1fr);
1699  }
1700
1701  @media (max-width: 480px) {
1702    grid-template-columns: repeat(2, 1fr);
1703    gap: 0.75rem;
1704  }
1705`,Gu=kr.div`
1706  background-color: var(--blue2);
1707  border-radius: 12px;
1708  border: 1px solid var(--blue3);
1709  padding: 1.25rem 1rem;
1710  text-align: center;
1711`,Yu=kr.div`
1712  i {
1713    font-size: 1.5rem;
1714    color: var(--blue11);
1715    margin-bottom: 0.5rem;
1716    display: block;
1717  }
1718`,Wu=kr.div`
1719  font-size: 1.75rem;
1720  font-weight: 700;
1721  color: var(--blue9);
1722  line-height: 1;
1723  margin-bottom: 0.35rem;
1724
1725  @media (max-width: 480px) {
1726    font-size: 1.4rem;
1727  }
1728`,Ku=kr.div`
1729  font-size: 0.75rem;
1730  color: var(--blue11);
1731  font-weight: 500;
1732  text-transform: uppercase;
1733  letter-spacing: 0.04em;
1734`,qu=kr.div`
1735  display: grid;
1736  grid-template-columns: 1.75fr 2.25fr;
1737  gap: 1.5rem;
1738  
1739  @media (max-width: 992px) {
1740    grid-template-columns: 1fr;
1741  }
1742`,Qu=kr.div`
1743  background-color: var(--blue2);
1744  border-radius: 16px;
1745  border: 1px solid var(--blue3);
1746  overflow: hidden;
1747`,Xu=kr(Qu)``,Ju=kr(Qu)``,Zu=kr.div`
1748  padding: 1.5rem;
1749`,ed=kr.h3`
1750  font-size: 1.5rem;
1751  font-weight: 600;
1752  margin: 0 0 1.5rem;
1753  color: var(--blue9);
1754`,td=kr.p`
1755  color: var(--blue11);
1756  margin: 0 0 1.5rem;
1757  line-height: 1.6;
1758`,nd=kr.div`
1759  display: grid;
1760  grid-template-columns: repeat(3, 1fr);
1761  gap: 1rem;
1762  
1763  @media (max-width: 992px) {
1764    grid-template-columns: repeat(3, 1fr);
1765  }
1766  
1767  @media (max-width: 480px) {
1768    grid-template-columns: repeat(2, 1fr);
1769  }
1770`,rd=kr.div`
1771  display: flex;
1772  flex-direction: column;
1773  align-items: center;
1774  gap: 0.5rem;
1775  padding: 1rem;
1776  background-color: var(--blue3);
1777  border-radius: 8px;
1778`,od=kr.img`
1779  width: 40px;
1780  height: 40px;
1781  object-fit: contain;
1782`,id=kr.span`
1783  font-size: 0.9rem;
1784  font-weight: 500;
1785  color: var(--blue9);
1786  text-align: center;
1787`,ad=kr.div`
1788  display: grid;
1789  grid-template-columns: repeat(3, 1fr);
1790  gap: 1.5rem;
1791
1792  @media (max-width: 992px) {
1793    grid-template-columns: repeat(2, 1fr);
1794  }
1795
1796  @media (max-width: 480px) {
1797    grid-template-columns: 1fr;
1798  }
1799`,ld=kr.div`
1800  background-color: var(--blue2);
1801  border-radius: 12px;
1802  border: 1px solid var(--blue3);
1803  padding: 1.5rem;
1804
1805  @media (max-width: 480px) {
1806    padding: 1.125rem;
1807  }
1808`,sd=kr.div`
1809  width: 48px;
1810  height: 48px;
1811  background-color: var(--blue3);
1812  border-radius: 10px;
1813  display: flex;
1814  align-items: center;
1815
1816  @media (max-width: 480px) {
1817    width: 40px;
1818    height: 40px;
1819    border-radius: 8px;
1820  }
1821  justify-content: center;
1822  margin-bottom: 1rem;
1823
1824  i {
1825    font-size: 1.5rem;
1826    color: var(--blue9);
1827  }
1828`,cd=kr.h3`
1829  font-size: 1rem;
1830  font-weight: 600;
1831  margin: 0 0 0.5rem;
1832  color: var(--blue9);
1833
1834  @media (max-width: 480px) {
1835    font-size: 0.875rem;
1836  }
1837`,ud=kr.p`
1838  font-size: 0.875rem;
1839  color: var(--blue11);
1840  margin: 0;
1841  line-height: 1.6;
1842
1843  @media (max-width: 480px) {
1844    font-size: 0.775rem;
1845    line-height: 1.5;
1846  }
1847`,dd="\n  @keyframes shimmer {\n    0% { background-position: 200% 0; }\n    100% { background-position: -200% 0; }\n  }\n",pd=kr.div`
1848  ${dd}
1849  height: 1.75rem;
1850  background: linear-gradient(90deg, var(--blue3) 25%, var(--blue4) 50%, var(--blue3) 75%);
1851  background-size: 200% 100%;
1852  animation: shimmer 1.5s infinite;
1853  border-radius: 4px;
1854  width: 65%;
1855  margin: 0 auto 0.35rem;
1856
1857  @media (max-width: 480px) {
1858    height: 1.4rem;
1859  }
1860`,fd=kr.div`
1861  background-color: var(--blue2);
1862  border-radius: 12px;
1863  overflow: hidden;
1864  border: 1px solid var(--blue3);
1865`,md=kr.div`
1866  ${dd}
1867  width: 100%;
1868  aspect-ratio: 16/9;
1869  background: linear-gradient(90deg, var(--blue3) 25%, var(--blue4) 50%, var(--blue3) 75%);
1870  background-size: 200% 100%;
1871  animation: shimmer 1.5s infinite;
1872`,hd=kr.div`
1873  padding: 1rem;
1874  display: flex;
1875  flex-direction: column;
1876  gap: 0.5rem;
1877`,gd=kr.div`
1878  ${dd}
1879  height: 1rem;
1880  background: linear-gradient(90deg, var(--blue3) 25%, var(--blue4) 50%, var(--blue3) 75%);
1881  background-size: 200% 100%;
1882  animation: shimmer 1.5s infinite;
1883  border-radius: 4px;
1884  width: 80%;
1885`,bd=kr.div`
1886  ${dd}
1887  height: 0.75rem;
1888  background: linear-gradient(90deg, var(--blue3) 25%, var(--blue4) 50%, var(--blue3) 75%);
1889  background-size: 200% 100%;
1890  animation: shimmer 1.5s infinite;
1891  border-radius: 4px;
1892  width: 50%;
1893`,vd={GlobalStyle:Xc,Container:Jc,HeroSection:Zc,HeroCard:eu,HeroBackgroun
1893dVideo:tu,HeroCardContent:nu,HeroContent:ru,ProfileImageContainer:ou,ProfileImage:iu,HeroTextContent:au,HeroHeadline:lu,HeroTagline:su,HeroDescription:cu,HeroStats:uu,StatItem:du,HeroActions:pu,StatsStrip:Hu,StatCard:Gu,StatIcon:Yu,StatNumber:Wu,StatLabel:Ku,Button:fu,PrimaryButton:mu,SecondaryButton:hu,Section:gu,SectionHeader:bu,ViewAllButton:vu,VideoGrid:yu,VideoCard:xu,VideoThumbnail:wu,VideoOverlay:Eu,VideoInfo:_u,VideoTitle:ku,VideoViews:Tu,ProjectsGrid:Cu,ProjectCard:Su,ProjectImage:Pu,ProjectInfo:Au,ProjectTitle:Ru,ProjectDescription:Iu,ClientsCard:Lu,ClientsCardContent:Ou,ClientsHeader:ju,ClientsRows:Mu,ClientTrack:Nu,ClientItem:Fu,ClientLogo:$u,ClientInitials:Vu,ClientName:Bu,ClientSubscribers:Du,ClientSubscriberCount:Uu,TwoColumnGrid:qu,Card:Qu,AboutCard:Xu,StackCard:Ju,CardContent:Zu,SectionTitle:ed,AboutText:td,TechGrid:nd,TechItem:rd,TechLogo:od,TechName:id,CtaSection:kr.section`
1894  margin-bottom: 5rem;
1895  
1896  @media (max-width: 768px) {
1897    margin-bottom: 4rem;
1898  }
1899`,CtaContent:kr.div`
1900  background-color: var(--blue2);
1901  border-radius: 16px;
1902  border: 1px solid var(--blue3);
1903  padding: 3rem;
1904  text-align: center;
1905  
1906  @media (max-width: 768px) {
1907    padding: 2rem;
1908  }
1909`,CtaTitle:kr.h3`
1910  font-size: 2rem;
1911  font-weight: 600;
1912  margin: 0 0 0.5rem;
1913  color: var(--blue9);
1914  
1915  @media (max-width: 768px) {
1916    font-size: 1.75rem;
1917  }
1918`,CtaText:kr.p`
1919  font-size: 1.1rem;
1920  color: var(--blue11);
1921  margin: 0 0 2rem;
1922`,CtaButton:kr(mu)`
1923  margin: 0 auto;
1924  
1925  @media (max-width: 480px) {
1926    width: 100%;
1927    justify-content: center;
1928  }
1929`,Footer:kr.footer`
1930  display: flex;
1931  justify-content: space-between;
1932  align-items: center;
1933  padding: 2rem 0;
1934  border-top: 1px solid var(--blue3);
1935  
1936  @media (max-width: 768px) {
1937    flex-direction: column;
1938    gap: 1rem;
1939    text-align: center;
1940  }
1941`,FooterText:kr.p`
1942  color: var(--blue11);
1943  font-size: 0.9rem;
1944  margin: 0;
1945`,SocialLinks:kr.div`
1946  display: flex;
1947  gap: 1rem;
1948`,SocialLink:kr.a`
1949  display: flex;
1950  align-items: center;
1951  justify-content: center;
1952  width: 40px;
1953  height: 40px;
1954  background-color: var(--blue2);
1955  border: 1px solid var(--blue3);
1956  border-radius: 50%;
1957  color: var(--blue9);
1958  font-size: 1.25rem;
1959  transition: all 0.2s ease;
1960  
1961  &:hover {
1962    background-color: var(--blue3);
1963    transform: translateY(-3px);
1964    color: var(--gray4);
1965  }
1966`,ServicesGrid:ad,ServiceCard:ld,ServiceIcon:sd,ServiceTitle:cd,ServiceDescription:ud,VideoModal:kr.div`
1967  position: fixed;
1968  top: 0;
1969  left: 0;
1970  width: 100%;
1971  height: 100%;
1972  z-index: 1000;
1973  display: flex;
1974  align-items: center;
1975  justify-content: center;
1976  padding: 2rem;
1977  
1978  @media (max-width: 768px) {
1979    padding: 1rem;
1980  }
1981`,ModalBackdrop:kr.div`
1982  position: absolute;
1983  top: 0;
1984  left: 0;
1985  width: 100%;
1986  height: 100%;
1987  background-color: rgba(0, 0, 0, 0.9);
1988  cursor: pointer;
1989`,ModalContent:kr.div`
1990  width: 100%;
1991  max-width: 900px;
1992  aspect-ratio: 16/9;
1993  position: relative;
1994  z-index: 1001;
1995`,CloseButton:kr.button`
1996  position: absolute;
1997  top: -3rem;
1998  right: 0;
1999  background: none;
2000  border: none;
2001  color: white;
2002  font-size: 2rem;
2003  cursor: pointer;
2004  z-index: 1002;
2005  
2006  @media (max-width: 768px) {
2007    top: -2.5rem;
2008    right: 0;
2009  }
2010`,VideoIframe:kr.iframe`
2011  width: 100%;
2012  height: 100%;
2013  border: none;
2014  border-radius: 12px;
2015`,StatSkeleton:pd,VideoCardSkeleton:fd,VideoThumbnailSkeleton:md,VideoInfoSkeleton:hd,VideoTitleSkeleton:gd,VideoSubSkeleton:bd},yd=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2e3;const[n,r]=(0,o.useState)(0);return(0,o.useEffect)((()=>{if(0===e)return void r(0);let n=null;const o=i=>{n||(n=i);const a=Math.min((i-n)/t,1),l=1-Math.pow(1-a,3);r(Math.floor(e*l)),a<1?requestAnimationFrame(o):r(e)};requestAnimationFrame(o)}),[e,t]),n},xd="AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",wd="PLDZjxSO4MSJoA638nQvykQaevGgc-sV2B",Ed="UC7bYyWCCCLHDU0ZuNzGNTtg",_d=`portfolio-stats:${wd}:v2`,kd=119167506,Td=199,Cd=5573002,Sd={totalViews:155703935,totalVideos:446,totalChannels:19,totalLikes:6659682},Pd=async()=>{const e=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{if("undefined"===typeof window)return null;const t=window.localStorage.getItem(_d);if(!t)return null;const n=JSON.parse(t),r=Date.now()-n.cachedAt>864e5;return!e&&r?null:(e=>{if(!e||"object"!==typeof e)return!1;const t=e;return"number"===typeof t.totalViews&&"number"===typeof t.totalVideos&&"number"===typeof t.totalChannels&&"number"===typeof t.totalLikes})(n.stats)?n.stats:null}catch{return null}}();if(e)return e;const t=new Map;let n="";try{0;do{var r;const e=await fetch(`https://www.googleapis.com/youtube/v3/playlistItems?part=contentDetails&playlistId=${wd}&key=${xd}&maxResults=50`+(n?`&pageToken=${n}`:"")),o=await e.json();if(!e.ok||o.error)throw new Error("Unable to fetch YouTube playlist data.");
2015if(null===(r=o.items)||void 0===r||!r.length)break;const i=o.items.map((e=>e.contentDetails.videoId)).join(","),a=await fetch(`https://www.googleapis.com/youtube/v3/videos?part=statistics,snippet&id=${i}&key=${xd}`),l=await a.json();if(!a.ok||l.error)throw new Error("Unable to fetch YouTube video statistics.");for(const n of l.items||[])n.snippet.channelId!==Ed&&t.set(n.id,{views:parseInt(n.statistics.viewCount)||0,likes:parseInt(n.statistics.likeCount)||0,channelId:n.snippet.channelId});n=o.nextPageToken||""}while(n);const e=[...t.values()],o=new Set(e.map((e=>e.channelId)));o.add(Ed);const i={totalViews:e.reduce(((e,t)=>e+t.views),kd),totalLikes:e.reduce(((e,t)=>e+t.likes),Cd),totalVideos:e.length+Td,totalChannels:o.size},a={totalViews:Math.max(i.totalViews,Sd.totalViews),totalLikes:Math.max(i.totalLikes,Sd.totalLikes),totalVideos:Math.max(i.totalVideos,Sd.totalVideos),totalChannels:Math.max(i.totalChannels,Sd.totalChannels)};return(e=>{try{if("undefined"===typeof window)return;window.localStorage.setItem(_d,JSON.stringify({cachedAt:Date.now(),stats:e}))}catch{}})(a),a}catch{return Sd}},Ad="AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",Rd=new Map,Id=e=>{if(!e||"object"!==typeof e)return!1;const t=e;return"string"===typeof t.id&&"string"===typeof t.title&&"string"===typeof t.thumbnail&&("number"===typeof t.subscriberCount||null===t.subscriberCount)},Ld=e=>`youtube-channel-details:v2:${[...e].sort().join(",")}`,Od=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{if("undefined"===typeof window)return null;const n=window.localStorage.getItem(`youtube-video-details:${e}`);if(!n)return null;const r=JSON.parse(n),o=Date.now()-r.cachedAt>31536e6;return!t&&o?null:(e=>{if(!e||"object"!==typeof e)return!1;const t=e;return"string"===typeof t.title&&"string"===typeof t.thumbnail})(r.data)?r.data:null}catch{return null}},jd=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{if("undefined"===typeof window)return null;const r=window.localStorage.getItem(Ld(e));if(!r)return null;const o=JSON.parse(r),i=Date.now()-o.cachedAt>864e5;return!t&&i?null:(n=o.data)&&"object"===typeof n&&Object.values(n).every(Id)&&(t||((e,t)=>t.every((t=>{var n;return Boolean(null===(n=e[t])||void 0===n?void 0:n.thumbnail)})))(o.data,e))?o.data:null}catch{return null}var n},zd=(e,t)=>{try{if("undefined"===typeof window)return;window.localStorage.setItem(`youtube-video-details:${e}`,JSON.stringify({cachedAt:Date.now(),data:t}))}catch{}},Nd={async getLatestVideo(){try{var e;const t=await fetch(`https://www.googleapis.com/youtube/v3/search?key=${Ad}&channelId=UCg_JArLpHeN9P34qMd9W5rQ&part=snippet&order=date&type=video&videoEmbeddable=true&maxResults=10`),n=await t.json();if(null===(e=n.items)||void 0===e||!e.length)return null;const r=n.items.map((e=>e.id.videoId)).join(","),o=await fetch(`https://www.googleapis.com/youtube/v3/videos?key=${Ad}&id=${r}&part=contentDetails,snippet,statistics`),i=(await o.json()).items.find((e=>function(e){const t=e.match(/PT(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?/);if(!t)return 0;const[,n,r,o]=t;return 3600*parseInt(n||"0")+60*parseInt(r||"0")+parseInt(o||"0")}(e.contentDetails.duration)>=60));return i?{id:i.id,title:i.snippet.title,description:i.snippet.description,thumbnail:i.snippet.thumbnails.high.url,publishedAt:i.snippet.publishedAt,duration:i.contentDetails.duration}:null}catch{return null}},async getVideoDetails(e){const t=Od(e);if(t)return t;const n=Rd.get(e);if(n)return n;const r=(async()=>{try{var t,n;const r=await fetch(`https://www.googleapis.com/youtube/v3/videos?key=${Ad}&id=${e}&part=snippet`),o=await r.json();if(!r.ok||o.error)throw new Error("Unable to fetch YouTube video details.");if(null===(t=o.items)||void 0===t||!t[0])return null;const i=o.items[0],a={title:i.snippet.title,thumbnail:(null===(n=i.snippet.thumbnails.maxres)||void 0===n?void 0:n.url)||i.snippet.thumbnails.high.url};return zd(e,a),a}catch{return Od(e,!0)}finally{Rd.delete(e)}})();return Rd.set(e,r),r},cacheVideoDetails(e,t){zd(e,t)},async getChannelDetails(e){const t=[...new Set(e.filter(Boolean))];if(!t.length)return{};const n=jd(t);if(n)return n;try{0;const e=new URLSearchParams({key:Ad,id:t.join(","),part:"snippet,statistics",maxResults:"50"}
2015),n=await fetch(`https://www.googleapis.com/youtube/v3/channels?${e}`),r=await n.json();if(!n.ok||r.error)throw new Error("Unable to fetch YouTube channel details.");const o=(r.items||[]).reduce(((e,t)=>{var n,r,o,i,a,l,s;const c=(null===(n=t.snippet)||void 0===n?void 0:n.thumbnails)||{},u=null!==(r=t.statistics)&&void 0!==r&&r.hiddenSubscriberCount?null:Number(null===(o=t.statistics)||void 0===o?void 0:o.subscriberCount),d=Number.isFinite(u)?u:null;return e[t.id]={id:t.id,title:(null===(i=t.snippet)||void 0===i?void 0:i.title)||"",thumbnail:(null===(a=c.high)||void 0===a?void 0:a.url)||(null===(l=c.medium)||void 0===l?void 0:l.url)||(null===(s=c.default)||void 0===s?void 0:s.url)||"",subscriberCount:d},e}),{});if(!Object.keys(o).length)throw new Error("YouTube channel response did not include channel details.");return((e,t)=>{try{if("undefined"===typeof window)return;window.localStorage.setItem(Ld(e),JSON.stringify({cachedAt:Date.now(),data:t}))}catch{}})(t,o),o}catch{return jd(t,!0)||{}}}};const Md=[{video_id:"6u1uT3yeO34",title:"Elon Musk Joins Ben Shapiro on the Search",tag:"The Daily Wire"},{video_id:"mMMQYz_vJFw",title:"Peterson x Tony Robbins | EP 517",tag:"Jordan B Peterson"},{video_id:"JACxe2Z0wcI",title:"Our Military Might Crumble | Facts Ep. 4",tag:"Facts"},{video_id:"aR6nqytYGXo",title:"Michael & Donald Trump Jr. Exclusive",tag:"Michael Knowles"}],Dd=e=>null===e?"Subscriber count unavailable":`${e.toLocaleString()} subscribers`,Ud=e=>null===e?"Unknown":e>=1e6?`${(e/1e6).toFixed(e>=1e7?0:1)}M`:e>=1e3?`${(e/1e3).toFixed(e>=1e5?0:1)}K`:e.toLocaleString(),Fd=e=>{const t=new Set(["the","with"]);return e.split(/\s+/).filter((e=>!t.has(e.toLowerCase()))).slice(0,2).map((e=>e[0])).join("").toUpperCase()};const $d=[{name:"Jordan B Peterson",channelId:"UCL_f53ZEJxp8TtlOkHwMV9Q",fallbackSubscribers:885e4,fallbackImage:"https://yt3.ggpht.com/EjQNRQGTldnH7kUHaRRWa_yOa6Po-GODJN0xqJEmsji96cAVBdLggAgHlw2DbKSvomyo3xm2CX0=s800-c-k-c0x00ffffff-no-rj"},{name:"Ben Shapiro",channelId:"UCnQC_G5Xsjhp9fEJKuIcrSw",fallbackSubscribers:704e4,fallbackImage:"https://yt3.ggpht.com/IwzYq-xS_iXyxcilUGmrrhP2AMTAi1F2siYICQVvE_35j-BX657pww-fZk1baN8TyyTtn6Zg=s88-c-k-c0x00ffffff-no-rj"},{name:"The Comments Section",channelId:"UC7bYyWCCCLHDU0ZuNzGNTtg",fallbackSubscribers:362e4},{name:"Matt Walsh",channelId:"UCO01ytfzgXYy4glnPJm4PPQ",fallbackSubscribers:341e4,fallbackImage:"https://yt3.ggpht.com/DLvOLEc5u6jeSz7XBOD0PUXGFVmK2DYYfh1SAAImRTGrOFDCVXLKNepkxtVpurVTTpYZiVzL=s88-c-k-c0x00ffffff-no-rj"},{name:"The Daily Wire",channelId:"UCaeO5vkdj5xOQHp4UmIN6dw",fallbackSubscribers:326e4},{name:"Michael Knowles",channelId:"UCr4kgAUTFkGIwlWSodg43QA",fallbackSubscribers:259e4,fallbackImage:"https://yt3.ggpht.com/Hv7ouCTt_NaxfS_Y5q-uEqT3AWZH3Js2xvy79MNk17FQCKTjNP0P1FTgBSEzGjgM8Nh32BZRyg=s88-c-k-c0x00ffffff-no-rj"},{name:"Andrew Klavan",channelId:"UCyhEZKz-LOwgktptEOh6_Iw",fallbackSubscribers:811e3,fallbackImage:"https://yt3.ggpht.com/xGjur8_mrSCyqG0xHAr72BJvOVDQbW69w3n2VvnaMAWjJd-uf0p7DQPvymDzVFzU25XsIwFH=s88-c-k-c0x00ffffff-no-rj"},{name:"Bussin' With The Boys",channelId:"UCylgcI1N1S3zHljDO8eW-Qg",fallbackSubscribers:703e3},{name:"The Money Guy Show",channelId:"UC9vUu4vlIlMC0dHQCTvQPbg",fallbackSubscribers:664e3,fallbackImage:"https://yt3.ggpht.com/lBMDs2uWynRVfdkPeGU4RrZMBpMPiZYvfc3YPt4u5e12BKauK8_2Zu3dncl6ou5KNagDBVjb-w=s800-c-k-c0x00ffffff-no-rj"},{name:"Daily Wire News",channelId:"UCroKPvbmaQKGK5tjtQsvaDw",fallbackSubscribers:171e3},{name:"MrSavior",channelId:"UCSCCR-BIVxGkpR4n0E7yHjw",fallbackSubscribers:132e3,fallbackImage:"https://yt3.ggpht.com/DqsoBIUJ1rGd2Irl6oiEfla5mcn3nE-WSXfFXJVNRYVs077cRMAqCeAClnIdYW8RYOyatXVeIQ=s800-c-k-c0x00ffffff-no-rj"},{name:"Hard Cut",channelId:"UC82cIuOeBCZ-cC0jWciBeug",fallbackSubscribers:22900,fallbackImage:"https://yt3.ggpht.com/HmrJaNgU1A9kXCPVNCY8F8dKDBy1KShenc98VvFoqg3sfnHGQsXK29N-cUX-ppGMSibUAPezOQM=s800-c-k-c0x00ffffff-no-rj"},{name:"Morning Wire",channelId:"UCxUQLGMbb2cI8CqiwZ0WhAQ",fallbackSubscribers:19400},{name:"Cyndi Thomson",channelId:"UC3ba4l0FDVSwPZvbAFPI1Kg",fallbackSubscribers:7300},{name:"Reagan Conrad",channelId:"UCZBnzaYGRMhmwUhsi5WQ4Ag",fallbackSubscribers:7190},{name:"Be a Man With Me",channelId:"UCIQGH1UHQp4nbb5QYSJroAg",fallbackSubscribers:1560},{name:"Star Street",channelId:"UCRndLcvOb8vjDnxvw0dHvyw",fallbackSubscribers:526}
2015,{name:"That's So Criminal",channelId:"UCduArA165znqJc7jphuhq0w",fallbackSubscribers:186},{name:"Bloom Digital Weddings",channelId:"UCaz-K0c6O5KMhlSUQlGQYtw",fallbackSubscribers:99}],Vd=()=>$d.map((e=>({...e,image:e.fallbackImage,subscriberCount:e.fallbackSubscribers,subscribers:Dd(e.fallbackSubscribers)}))),Bd=()=>{const[e,t]=(0,o.useState)(null),[n,r]=(0,o.useState)(!0),[i,a]=(0,o.useState)(0),[l,s]=(0,o.useState)(0),[c,u]=(0,o.useState)(0),[d,p]=(0,o.useState)(0),f=yd(i),m=yd(l),h=yd(c),g=yd(d),[b,v]=(0,o.useState)([]),[y,x]=(0,o.useState)(!0),[w,E]=(0,o.useState)(Vd);(0,o.useEffect)((()=>{Pd().then((e=>{a(e.totalViews),s(e.totalVideos),u(e.totalChannels),p(e.totalLikes)})).catch((()=>{a(1468e5),s(424),u(14),p(64e5)})).finally((()=>r(!1)))}),[]),(0,o.useEffect)((()=>{(async()=>{try{const e=await Promise.all(Md.map((async e=>{const t=await Nd.getVideoDetails(e.video_id);return{id:e.video_id,title:(null===t||void 0===t?void 0:t.title)||e.title,thumbnail:(null===t||void 0===t?void 0:t.thumbnail)||`https://img.youtube.com/vi/${e.video_id}/hqdefault.jpg`,tag:e.tag}})));v(e)}catch{}finally{x(!1)}})()}),[]),(0,o.useEffect)((()=>{let e=!0;return(async()=>{const t=await Nd.getChannelDetails($d.map((e=>e.channelId)));e&&E($d.map((e=>{var n;const r=t[e.channelId],o=null!==(n=null===r||void 0===r?void 0:r.subscriberCount)&&void 0!==n?n:e.fallbackSubscribers;return{...e,image:(null===r||void 0===r?void 0:r.thumbnail)||e.fallbackImage,subscriberCount:o,subscribers:Dd(o)}})))})(),()=>{e=!1}}),[]),(0,o.useEffect)((()=>{const e=e=>{"Escape"===e.key&&t(null)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)}),[]),Co({title:"Austin Davenport - Professional Video Editor",description:"Austin Davenport is a professional video editor with 10+ years of experience, a focused portfolio, client work, editing services, and selected software projects.",path:"/"});const _=[{count:f,label:"Views Edited",icon:"bx bxl-youtube"},{count:m,label:"Videos Produced",icon:"bx bx-video"},{count:h,label:"Channels Served",icon:"bx bx-user-check"},{count:g,label:"Total Likes",icon:"bx bx-like"}],k=w.reduce(((e,t)=>e+(t.subscriberCount||0)),0),T=function(e,t){const n=Array.from({length:t},(()=>[]));return e.forEach(((e,r)=>{n[r%t].push(e)})),n}(w,3);return(0,$r.jsxs)(vd.Container,{children:[(0,$r.jsx)(vd.GlobalStyle,{}),(0,$r.jsx)(vd.HeroSection,{children:(0,$r.jsxs)(vd.HeroCard,{children:[(0,$r.jsxs)(vd.HeroBackgroundVideo,{autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",poster:"/images/home/bg-video-poster.jpg","aria-hidden":"true",children:[(0,$r.jsx)("source",{src:"/videos/home-bg-1280.webm",type:"video/webm"}),(0,$r.jsx)("source",{src:"/videos/home-bg-1280.mp4",type:"video/mp4"})]}),(0,$r.jsx)(vd.HeroCardContent,{children:(0,$r.jsxs)(vd.HeroContent,{children:[(0,$r.jsx)(vd.ProfileImageContainer,{children:(0,$r.jsx)(vd.ProfileImage,{src:"https://64.media.tumblr.com/44ab51b7b5c73d1a68f728d92becd3b3/029f5263603a04c1-96/s1280x1920/61ad282235a57094aec8b8068662f9225a4f5a14.pnj",alt:"Austin Davenport",fetchPriority:"high"})}),(0,$r.jsxs)(vd.HeroTextContent,{children:[(0,$r.jsx)(vd.HeroHeadline,{children:"Austin Davenport"}),(0,$r.jsx)(vd.HeroTagline,{children:"Professional Video Editor"}),(0,$r.jsx)(vd.HeroDescription,{children:"Video editor with 10+ years of experience working with top creators. Delivering content that has accumulated over 150 million views."}),(0,$r.jsxs)(vd.HeroActions,{children:[(0,$r.jsxs)(vd.PrimaryButton,{onClick:()=>t({id:"QPRYfLCxA1g",title:"Austin Davenport Showreel"}),children:[(0,$r.jsx)("i",{className:"bx bx-play-circle"}),"Watch Demo Reel"]}),(0,$r.jsxs)(vd.SecondaryButton,{onClick:()=>window.location.href="/portfolio",children:[(0,$r.jsx)("i",{className:"bx bx-folder"}),"View Portfolio"]})]})]})]})})]})}),(0,$r.jsx)(vd.StatsStrip,{children:_.map(((e,t)=>{return(0,$r.jsxs)(vd.StatCard,{children:[(0,$r.jsx)(vd.StatIcon,{children:(0,$r.jsx)("i",{className:e.icon})}),n?(0,$r.jsx)(vd.StatSkeleton,{}):(0,$r.jsx)(vd.StatNumber,{children:(r=e.count,r>=1e9?`${(r/1e9).toFixed(1)}B`:r>=1e6?`${(r/1e6).toFixed(1)}M`:r>=1e3?`${Math.round(r/1e3)}K`:r.toString())}),(0,$r.jsx)(vd.StatLabel,{children:e.label})]},t);var r}))}
2015),(0,$r.jsx)(vd.Section,{children:(0,$r.jsxs)(vd.TwoColumnGrid,{children:[(0,$r.jsx)(vd.AboutCard,{children:(0,$r.jsxs)(vd.CardContent,{children:[(0,$r.jsx)(vd.SectionTitle,{children:"About Me"}),(0,$r.jsxs)(vd.AboutText,{children:["Skilled professional video editor. I blend technical expertise with creative vision to deliver compelling content that resonates with audiences.",(0,$r.jsx)("br",{}),(0,$r.jsx)("br",{}),"With a background in both video production and post production, I understand the unique challenges creators face and deliver results that address real needs."]}),(0,$r.jsxs)(vd.Button,{onClick:()=>window.open("https://youtube.com/@AustinDavenport","_blank","noopener,noreferrer"),children:["Visit My YouTube",(0,$r.jsx)("i",{className:"bx bx-right-arrow-alt"})]})]})}),(0,$r.jsx)(vd.StackCard,{children:(0,$r.jsxs)(vd.CardContent,{children:[(0,$r.jsx)(vd.SectionTitle,{children:"Software"}),(0,$r.jsx)(vd.TechGrid,{children:[{name:"Premiere Pro",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/Adobe_Premiere_Pro_CC_icon.svg/3840px-Adobe_Premiere_Pro_CC_icon.svg.png?utm_source=commons.wikimedia.org&utm_campaign=index&utm_content=thumbnail"},{name:"After Effects",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/c/cb/Adobe_After_Effects_CC_icon.svg/3840px-Adobe_After_Effects_CC_icon.svg.png"},{name:"Photoshop",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/Adobe_Photoshop_CC_icon.svg/3840px-Adobe_Photoshop_CC_icon.svg.png"},{name:"Lightroom",logo:"https://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Adobe_Photoshop_Lightroom_CC_logo.svg/500px-Adobe_Photoshop_Lightroom_CC_logo.svg.png"},{name:"DaVinci Resolve",logo:"https://upload.wikimedia.org/wikipedia/commons/4/4d/DaVinci_Resolve_Studio.png"},{name:"OBS",logo:"https://upload.wikimedia.org/wikipedia/commons/1/13/OBS_Studio_logo.png"}].map(((e,t)=>(0,$r.jsxs)(vd.TechItem,{children:[(0,$r.jsx)(vd.TechLogo,{src:e.logo,alt:e.name,loading:"lazy"}),(0,$r.jsx)(vd.TechName,{children:e.name})]},t)))})]})})]})}),(0,$r.jsxs)(vd.Section,{children:[(0,$r.jsxs)(vd.SectionHeader,{children:[(0,$r.jsx)("h2",{children:"Featured Work"}),(0,$r.jsxs)(vd.ViewAllButton,{href:"/portfolio",children:["Full Portfolio",(0,$r.jsx)("i",{className:"bx bx-right-arrow-alt"})]})]}),(0,$r.jsx)(vd.VideoGrid,{children:y?Array.from({length:4}).map(((e,t)=>(0,$r.jsxs)(vd.VideoCardSkeleton,{children:[(0,$r.jsx)(vd.VideoThumbnailSkeleton,{}),(0,$r.jsxs)(vd.VideoInfoSkeleton,{children:[(0,$r.jsx)(vd.VideoTitleSkeleton,{}),(0,$r.jsx)(vd.VideoSubSkeleton,{})]})]},t))):b.map((e=>(0,$r.jsxs)(vd.VideoCard,{onClick:()=>t({id:e.id,title:e.title}),children:[(0,$r.jsx)(vd.VideoThumbnail,{style:{backgroundImage:`url(${e.thumbnail})`},children:(0,$r.jsx)(vd.VideoOverlay,{children:(0,$r.jsx)("i",{className:"bx bx-play-circle"})})}),(0,$r.jsxs)(vd.VideoInfo,{children:[(0,$r.jsx)(vd.VideoTitle,{children:e.title}),(0,$r.jsx)(vd.VideoViews,{children:e.tag})]})]},e.id)))})]}),(0,$r.jsx)(vd.Section,{children:(0,$r.jsx)(vd.ClientsCard,{children:(0,$r.jsxs)(vd.ClientsCardContent,{children:[(0,$r.jsxs)(vd.ClientsHeader,{children:[(0,$r.jsx)("h2",{children:"I've Worked With"}),(0,$r.jsxs)("p",{children:["Creators, shows, and media brands reaching ",(C=k,C>=1e6?`${Math.floor(C/1e6)}M+`:C>=1e3?`${Math.floor(C/1e3)}K+`:C.toLocaleString())," combined subscribers"]}
2015)]}),(0,$r.jsx)(vd.ClientsRows,{children:T.map(((e,t)=>(0,$r.jsx)(vd.ClientTrack,{$rowIndex:t,children:[...e,...e].map(((n,r)=>{const o=r>=e.length;return(0,$r.jsxs)(vd.ClientItem,{"aria-hidden":o,"aria-label":o?void 0:`${n.name}, ${n.subscribers}`,"data-duplicate":o?"true":void 0,tabIndex:o?-1:0,children:[n.image?(0,$r.jsx)(vd.ClientLogo,{src:n.image,alt:"",loading:"lazy"}):(0,$r.jsx)(vd.ClientInitials,{"aria-hidden":"true",children:Fd(n.name)}),(0,$r.jsx)(vd.ClientName,{children:n.name}),(0,$r.jsxs)(vd.ClientSubscribers,{$placement:2===t?"below":"above",children:[(0,$r.jsx)(vd.ClientSubscriberCount,{children:Ud(n.subscriberCount)})," ","subscribers"]})]},`${n.channelId}-${r}`)}))},t)))})]})})}),(0,$r.jsxs)(vd.Section,{children:[(0,$r.jsxs)(vd.SectionHeader,{children:[(0,$r.jsx)("h2",{children:"What I Do"}),(0,$r.jsxs)(vd.ViewAllButton,{href:"/portfolio",children:["See My Work",(0,$r.jsx)("i",{className:"bx bx-right-arrow-alt"})]})]}),(0,$r.jsx)(vd.ServicesGrid,{children:[{icon:"bx bx-film",title:"YouTube Video Editing",description:"Long-form and short-form content optimized for retention, with custom graphics, transitions, and color grading."},{icon:"bx bx-trending-up",title:"Short-Form & Reels",description:"Fast-paced, engaging edits for TikTok, Instagram Reels, and YouTube Shorts that drive views and follows."},{icon:"bx bx-palette",title:"Motion Graphics",description:"Custom animations, lower thirds, intros/outros, and visual effects using After Effects and Premiere Pro."},{icon:"bx bx-sun",title:"Color Grading",description:"Professional color correction and grading to establish mood and visual consistency across your content."},{icon:"bx bx-headphone",title:"Audio Mixing",description:"Clean, balanced audio with noise reduction, music mixing, and sound design that keeps viewers engaged."},{icon:"bx bx-trophy",title:"Brand Storytelling",description:"Editorial work that communicates your brand's story and converts viewers into long-term fans and customers."}].map(((e,t)=>(0,$r.jsxs)(vd.ServiceCard,{children:[(0,$r.jsx)(vd.ServiceIcon,{children:(0,$r.jsx)("i",{className:e.icon})}),(0,$r.jsx)(vd.ServiceTitle,{children:e.title}),(0,$r.jsx)(vd.ServiceDescription,{children:e.description})]},t)))})]}),(0,$r.jsx)(vd.CtaSection,{children:(0,$r.jsxs)(vd.CtaContent,{children:[(0,$r.jsx)(vd.CtaTitle,{children:"Ready to work together?"}),(0,$r.jsx)(vd.CtaText,{children:"Let's create something amazing"}),(0,$r.jsxs)(vd.CtaButton,{onClick:()=>window.location.href="/contact",children:[(0,$r.jsx)("i",{className:"bx bx-envelope"}),"Get in Touch"]})]})}),(0,$r.jsxs)(vd.Footer,{children:[(0,$r.jsx)(vd.FooterText,{children:"\xa9 2026 Austin Davenport. All rights reserved."}),(0,$r.jsx)(vd.SocialLinks,{children:(0,$r.jsx)(vd.SocialLink,{href:"https://youtube.com/@AustinDavenport",target:"_blank",rel:"noopener noreferrer",children:(0,$r.jsx)("i",{className:"bx bxl-youtube"})})})]}),e&&(0,$r.jsxs)(vd.VideoModal,{children:[(0,$r.jsxs)(vd.ModalContent,{children:[(0,$r.jsx)(vd.CloseButton,{onClick:()=>t(null),children:(0,$r.jsx)("i",{className:"bx bx-x"})}),(0,$r.jsx)(vd.VideoIframe,{src:`https://www.youtube.com/embed/${e.id}?autoplay=1`,title:e.title,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})]}),(0,$r.jsx)(vd.ModalBackdrop,{onClick:()=>t(null)})]})]});var C},Hd=Sr`
2016  from { opacity: 0; transform: translateY(20px); }
2017  to { opacity: 1; transform: translateY(0); }
2018`,Gd=kr.div`
2019  display: flex;
2020  flex-direction: column;
2021  align-items: center;
2022  justify-content: center;
2023  min-height: calc(100vh - 60px);
2024  padding: 2rem 1rem;
2025  position: relative;
2026  overflow: hidden;
2027  text-align: center;
2028
2029  @media (max-width: 480px) {
2030    min-height: calc(100vh - 120px);
2031    padding: 1rem 0;
2032  }
2033`,Yd=kr.div`
2034  position: absolute;
2035  top: 0;
2036  left: 0;
2037  right: 0;
2038  height: 2px;
2039  background: linear-gradient(90deg, transparent, ${e=>{let{theme:t}=e;return t.colors.blue4}}, transparent);
2040  opacity: 0.35;
2041  pointer-events: none;
2042  z-index: 0;
2043`,Wd=kr.div`
2044  max-width: 720px;
2045  width: 100%;
2046  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2047  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2048  border-radius: 12px;
2049  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.24);
2050  padding: clamp(1.35rem, 4vw, 2.25rem);
2051  z-index: 1;
2052  animation: ${Hd} 0.6s ease-out both;
2053
2054  @media (max-width: 480px) {
2055    border-radius: 10px;
2056    padding: 1.15rem;
2057  }
2058`,Kd=kr.div`
2059  display: flex;
2060  align-items: center;
2061  justify-content: center;
2062  gap: 0.5rem;
2063  font-family: 'Courier New', monospace;
2064  font-size: 0.75rem;
2065  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2066  letter-spacing: 0.1em;
2067  margin-bottom: 1.15rem;
2068  opacity: 0.75;
2069
2070  @media (max-width: 480px) {
2071    font-size: 0.65rem;
2072    gap: 0.35rem;
2073  }
2074`,qd=kr.span`
2075  color: ${e=>{let{highlight:t,theme:n}=e;return t?n.colors.blue9:n.colors.blue11}};
2076`,Qd=kr.div`
2077  position: relative;
2078  font-size: clamp(4.75rem, 15vw, 8rem);
2079  font-weight: 800;
2080  line-height: 0.9;
2081  margin-bottom: 1.1rem;
2082  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2083  letter-spacing: -0.04em;
2084  text-shadow: 0 1px 0 ${e=>{let{theme:t}=e;return t.colors.blue4}};
2085
2086  &::before,
2087  &::after {
2088    display: none;
2089  }
2090`,Xd=kr.div`
2091  display: inline-flex;
2092  align-items: center;
2093  gap: 0.5rem;
2094  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
2095  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
2096  color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
2097  padding: 0.4rem 0.85rem;
2098  border-radius: 100px;
2099  font-size: 0.72rem;
2100  font-weight: 800;
2101  letter-spacing: 0.08em;
2102  text-transform: uppercase;
2103  margin-bottom: 1rem;
2104
2105  &::before {
2106    content: '';
2107    width: 6px;
2108    height: 6px;
2109    border-radius: 50%;
2110    background: ${e=>{let{theme:t}=e;return t.colors.blue8}};
2111  }
2112`,Jd=kr.h1`
2113  font-size: clamp(1.45rem, 3vw, 2rem);
2114  font-weight: 700;
2115  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2116  margin-bottom: 0.6rem;
2117  line-height: 1.2;
2118`,Zd=kr.p`
2119  font-size: 0.95rem;
2120  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2121  margin-bottom: 1.6rem;
2122  line-height: 1.6;
2123  max-width: 470px;
2124  margin-left: auto;
2125  margin-right: auto;
2126
2127  @media (max-width: 480px) {
2128    font-size: 0.9rem;
2129  }
2130`,ep=kr.div`
2131  display: flex;
2132  gap: 0.75rem;
2133  justify-content: center;
2134  margin-bottom: 2rem;
2135  flex-wrap: wrap;
2136`,tp=kr.button`
2137  display: inline-flex;
2138  align-items: center;
2139  gap: 0.5rem;
2140  padding: 0.75rem 1.5rem;
2141  border-radius: 8px;
2142  font-weight: 600;
2143  font-size: 0.95rem;
2144  cursor: pointer;
2145  transition: all 0.2s ease;
2146  font-family: 'Poppins', sans-serif;
2147  background: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2148  color: ${e=>{let{theme:t}=e;return t.colors.blue1}};
2149  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue9}};
2150
2151  i { font-size: 1.1rem; }
2152
2153  &:hover {
2154    background: ${e=>{let{theme:t}=e;return t.colors.blue10}};
2155    border-color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
2156    transform: translateY(-2px);
2157    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.22);
2158  }
2159
2160  &:active { transform: translateY(0); }
2161`,np=kr.button`
2162  display: inline-flex;
2163  align-items: center;
2164  gap: 0.5rem;
2165  padding: 0.75rem 1.5rem;
2166  border-radius: 8px;
2167  font-weight: 600;
2168  font-size: 0.95rem;
2169  cursor: pointer;
2170  transition: all 0.2s ease;
2171  font-family: 'Poppins', sans-serif;
2172  background: transparent;
2173  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2174  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
2175
2176  i { font-size: 1.1rem; }
2177
2178  &:hover {
2179    background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2180    border-color: ${e=>{let{theme:t}=e;return t.colors.blue5}};
2181    transform: translateY(-2px);
2182  }
2183
2184  &:active { transform: translateY(0); }
2185`,rp=kr.div`
2186  width: 100%;
2187  height: 1px;
2188  background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
2189  margin: 0 auto 1.5rem;
2190`,op=kr.div``,ip=kr.p`
2191  font-size: 0.72rem;
2192  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2193  text-transform: uppercase;
2194  letter-spacing: 0.12em;
2195  margin-bottom: 0.85rem;
2196`,ap=kr.div`
2197  display: grid;
2198  grid-template-columns: repeat(4, 1fr);
2199  gap: 0.75rem;
2200
2201  @media (max-width: 600px) {
2202    grid-template-columns: repeat(2, 1fr);
2203  }
2204`,lp=kr(Ie)`
2205  display: flex;
2206  flex-direction: column;
2207  align-items: center;
2208  gap: 0.5rem;
2209  padding: 0.95rem 0.75rem;
2210  background: ${e=>{let{theme:t}=e;return t.colors.blue1}};
2211  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
2212  border-radius: 8px;
2213  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2214  text-decoration: none;
2215  font-size: 0.82rem;
2216  font-weight: 700;
2217  transition: all 0.2s ease;
2218
2219  i {
2220    font-size: 1.4rem;
2221    color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
2222  }
2223
2224  &:hover {
2225    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
2226    border-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
2227    transform: translateY(-2px);
2228
2229    i { color: ${e=>{let{theme:t}=e;return t.colors.blue9}}; }
2230  }
2231`,sp=(kr.div`display: none;`,kr.div`display: none;`,kr.div`display: none;`,kr.div`display: none;`,()=>{const e=ne();return(0,o.useEffect)((()=>{document.title="404 - Page Not Found | Austin Davenport";const e=document.querySelector('meta[name="robots"]');return e&&e.setAttribute("content","noindex, nofollow"),()=>{e&&e.setAttribute("content","index, follow")}}),[]),(0,$r.jsxs)(Gd,{children:[(0,$r.jsx)(Yd,{}),(0,$r.jsxs)(Wd,{children:[(0,$r.jsxs)(Kd,{children:[(0,$r.jsx)(qd,{children:"AUSTIN DAVENPORT"}),(0,$r.jsx)(qd,{children:"|"}),(0,$r.jsx)(qd,{highlight:!0,children:"404"})]}),(0,$r.jsx)(Qd,{children:"404"}),(0,$r.jsx)(Xd,{children:"Page Not Found"}),(0,$r.jsx)(Jd,{children:"This page was not found."}),(0,$r.jsx)(Zd,{children:"The link may have moved, or the page no longer exists. Try one of these places instead."}),(0,$r.jsxs)(ep,{children:[(0,$r.jsxs)(tp,{onClick:()=>e("/"),children:[(0,$r.jsx)("i",{className:"bx bx-home"}),"Back to Home"]}),(0,$r.jsxs)(np,{onClick:()=>{window.history.length>1?e(-1):e("/")},children:[(0,$r.jsx)("i",{className:"bx bx-arrow-back"}),"Go Back"]})]}),(0,$r.jsx)(rp,{}),(0,$r.jsxs)(op,{children:[(0,$r.jsx)(ip,{children:"Or jump to"}),(0,$r.jsxs)(ap,{children:[(0,$r.jsxs)(lp,{to:"/portfolio",children:[(0,$r.jsx)("i",{className:"bx bx-book-alt"}),"Portfolio"]}),(0,$r.jsxs)(lp,{to:"/projects",children:[(0,$r.jsx)("i",{className:"bx bx-layer"}),"Projects"]}),(0,$r.jsxs)(lp,{to:"/blog",children:[(0,$r.jsx)("i",{className:"bx bx-pen"}),"Blog"]}),(0,$r.jsxs)(lp,{to:"/contact",children:[(0,$r.jsx)("i",{className:"bx bx-phone"}),"Contact"]})]})]})]})]})}),cp=Sr`
2232  0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
2233  40% { transform: translateY(-10px); }
2234  60% { transform: translateY(-5px); }
2235`,up=Sr`
2236  to { transform: rotate(360deg); }
2237`,dp=Sr`
2238  0% { background-position: -200% 0; }
2239  100% { background-position: 200% 0; }
2240`,pp=(kr.div`
2241  display: flex;
2242  flex-direction: column;
2243  align-items: center;
2244  justify-content: center;
2245  min-height: 60vh;
2246  gap: 1rem;
2247  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2248`,kr.div`
2249  width: 44px;
2250  height: 44px;
2251  border: 3px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2252  border-top-color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
2253  border-radius: 50%;
2254  animation: ${up} 0.8s linear infinite;
2255`,kr.p`
2256  font-size: 0.95rem;
2257  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2258  letter-spacing: 0.05em;
2259`,kr.div`
2260  border-radius: 12px;
2261  overflow: hidden;
2262  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2263  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2264`),fp=kr.div`
2265  width: 100%;
2266  aspect-ratio: 16/9;
2267  background: linear-gradient(
2268    90deg,
2269    ${e=>{let{theme:t}=e;return t.colors.blue2}} 25%,
2270    ${e=>{let{theme:t}=e;return t.colors.blue3}} 50%,
2271    ${e=>{let{theme:t}=e;return t.colors.blue2}} 75%
2272  );
2273  background-size: 200% 100%;
2274  animation: ${dp} 1.5s infinite;
2275`,mp=kr.div`
2276  height: 14px;
2277  border-radius: 4px;
2278  margin: 0.5rem 1rem;
2279  width: ${e=>{let{width:t}=e;return t||"80%"}};
2280  background: linear-gradient(
2281    90deg,
2282    ${e=>{let{theme:t}=e;return t.colors.blue2}} 25%,
2283    ${e=>{let{theme:t}=e;return t.colors.blue3}} 50%,
2284    ${e=>{let{theme:t}=e;return t.colors.blue2}} 75%
2285  );
2286  background-size: 200% 100%;
2287  animation: ${dp} 1.5s infinite;
2288`,hp=(kr.div`
2289  position: absolute;
2290  bottom: 2rem;
2291  left: 50%;
2292  transform: translateX(-50%);
2293  z-index: 3;
2294  display: flex;
2295  flex-direction: column;
2296  align-items: center;
2297  gap: 0.5rem;
2298  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2299  animation: ${cp} 2s infinite;
2300  cursor: pointer;
2301
2302  i {
2303    font-size: 2rem;
2304  }
2305
2306  span {
2307    font-size: 0.875rem;
2308    text-transform: uppercase;
2309    letter-spacing: 0.1em;
2310  }
2311`,kr.div`
2312  position: absolute;
2313  inset: -6px;
2314  overflow: hidden;
2315
2316  &::before {
2317    content: '';
2318    position: absolute;
2319    inset: 0;
2320    z-index: 1;
2321    pointer-events: none;
2322    background:
2323      linear-gradient(to bottom, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0) 28%),
2324      linear-gradient(to top, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0) 34%);
2325  }
2326
2327  &::after {
2328    content: '';
2329    position: absolute;
2330    top: 0;
2331    left: 0;
2332    right: 0;
2333    bottom: 0;
2334    z-index: 2;
2335    pointer-events: none;
2336    background:
2337      radial-gradient(circle at center, rgba(0, 0, 0, 0.18) 0%, rgba(0, 0, 0, 0.48) 78%),
2338      rgba(0, 0, 0, 0.42);
2339  }
2340
2341  iframe {
2342    position: absolute;
2343    top: 50%;
2344    left: 50%;
2345    transform: translate(-50%, -50%) scale(1.2);
2346    width: 177.77777778vh;
2347    height: 56.25vw;
2348    min-width: 100%;
2349    min-height: 100%;
2350    pointer-events: none;
2351    opacity: 0.6;
2352
2353    @media (max-width: 768px) {
2354      width: 300%;
2355      height: 100%;
2356    }
2357  }
2358`,kr.div`
2359  position: fixed;
2360  top: 0;
2361  left: 0;
2362  right: 0;
2363  bottom: 0;
2364  background: rgba(0, 0, 0, 0.95);
2365  z-index: 1000;
2366  display: ${e=>e.isOpen?"flex":"none"};
2367  align-items: center;
2368  justify-content: center;
2369  padding: 1rem;
2370
2371  @media (max-width: 768px) {
2372    padding: 0;
2373  }
2374`),gp=kr.div`
2375  width: 100%;
2376  max-width: 1200px;
2377  position: relative;
2378  aspect-ratio: 16/9;
2379
2380  @media (max-width: 768px) {
2381    max-width: 100%;
2382    height: auto;
2383  }
2384`,bp=kr.iframe`
2385  width: 100%;
2386  height: 100%;
2387  position: absolute;
2388  top: 0;
2389  left: 0;
2390`,vp=kr.button`
2391  position: absolute;
2392  top: -3rem;
2393  right: 0;
2394  background: none;
2395  border: none;
2396  color: white;
2397  font-size: 2rem;
2398  cursor: pointer;
2399  z-index: 1001;
2400  padding: 0.5rem;
2401  
2402  @media (max-width: 768px) {
2403    top: -2.5rem;
2404    right: 0.5rem;
2405    font-size: 1.5rem;
2406  }
2407`,yp=kr.div`
2408  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2409  position: sticky;
2410  margin-top: 16px;
2411  top: 0;
2412  z-index: 10;
2413  border-radius: 12px;
2414  width: 100%;
2415  max-width: 100%;
2416  
2417  @media (max-width: 768px) {
2418    background: ${e=>{let{theme:t}=e;return t.colors.blue1}};
2419    margin: 0;
2420    border-radius: 0;
2421    padding: 0.5rem 0;
2422  }
2423`,xp=kr.div`
2424  display: flex;
2425  gap: 0.75rem;
2426  overflow-x: auto;
2427  padding: 1rem 1rem;
2428  -webkit-overflow-scrolling: touch;
2429  scrollbar-width: none;
2430  border-radius: 6px;
2431  width: 100%;
2432  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
2433  
2434  &::-webkit-scrollbar {
2435    display: none;
2436  }
2437  
2438  @media (max-width: 768px) {
2439    padding: 0.25rem 1rem;
2440    gap: 0.5rem;
2441  }
2442`,wp=kr.button`
2443  padding: 0.5rem 1rem;
2444  border-radius: 6px;
2445  border: none;
2446  background: ${e=>{let{theme:t,active:n}=e;return n?t.colors.blue4:t.colors.blue3}};
2447  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2448  cursor: pointer;
2449  white-space: nowrap;
2450  transition: all 0.2s ease;
2451  font-size: 0.9rem;
2452  font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
2453  
2454  &:hover {
2455    background: ${e=>{let{theme:t}=e;return t.colors.blue5}};
2456  }
2457  
2458  @media (max-width: 768px) {
2459    padding: 0.4rem 0.8rem;
2460    font-size: 0.8rem;
2461    border-radius: 4px;
2462  }
2463`,Ep=(kr.div`
2464  height: 80vh;
2465  display: flex;
2466  align-items: center;
2467  justify-content: center;
2468  position: relative;
2469  overflow: hidden;
2470  background: ${e=>{let{theme:t}=e;return t.colors.blue1}};
2471
2472  @media (max-width: 768px) {
2473    height: 45vh;
2474    min-height: 240px;
2475  }
2476
2477  @media (max-width: 480px) {
2478    height: 38vh;
2479    min-height: 200px;
2480  }
2481`,kr.div`
2482  position: absolute;
2483  inset: 0;
2484  z-index: 3;
2485  --hero-copy-shift: 2.25rem;
2486  text-align: center;
2487  padding: clamp(4.25rem, 12vh, 7.25rem) clamp(1rem, 4vh, 2rem) clamp(1rem, 4vh, 2rem);
2488  width: 100%;
2489  display: flex;
2490  flex-direction: column;
2491  align-items: center;
2492  justify-content: flex-start;
2493  
2494  @media (max-width: 768px) {
2495    --hero-copy-shift: 1rem;
2496    padding: clamp(1.5rem, 6vh, 2.5rem) 1rem 1rem;
2497  }
2498
2499  @media (max-width: 480px) {
2500    --hero-copy-shift: 0.5rem;
2501    padding-top: 1.25rem;
2502  }
2503`,kr.h1`
2504  font-size: 3.5rem;
2505  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2506  font-weight: 700;
2507  margin: 0 0 0.75rem;
2508  position: relative;
2509  top: var(--hero-copy-shift);
2510
2511  @media (max-width: 768px) {
2512    font-size: 1.65rem;
2513    margin-bottom: 0.5rem;
2514    padding: 0 1rem;
2515  }
2516
2517  @media (max-width: 480px) {
2518    font-size: 1.25rem;
2519  }
2520`,kr.p`
2521  font-size: 1.2rem;
2522  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2523  margin-bottom: 2rem;
2524  line-height: 1.6;
2525  position: relative;
2526  top: var(--hero-copy-shift);
2527  
2528  @media (max-width: 768px) {
2529    font-size: 0.85rem;
2530    margin-bottom: 1rem;
2531    padding: 0 1rem;
2532  }
2533
2534  @media (max-width: 480px) {
2535    font-size: 0.75rem;
2536    line-height: 1.25;
2537    margin-bottom: 0;
2538  }
2539`,kr.div`
2540  width: min(100%, 420px);
2541  min-height: 104px;
2542  position: absolute;
2543  left: 50%;
2544  top: 50%;
2545  transform: translate(-50%, -50%);
2546  margin: 0;
2547  padding: 1rem 1.1rem;
2548  border-radius: 8px;
2549  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
2550  background: rgba(15, 17, 19, 0.9);
2551  backdrop-filter: blur(14px);
2552  display: grid;
2553  grid-template-columns: auto 1fr auto;
2554  gap: 0.9rem;
2555  align-items: center;
2556  text-align: left;
2557  box-shadow: 0 22px 70px rgba(0, 0, 0, 0.42);
2558
2559  @media (max-width: 768px) {
2560    width: min(100% - 2rem, 360px);
2561    min-height: 90px;
2562    padding: 0.8rem;
2563    gap: 0.7rem;
2564  }
2565
2566  @media (max-width: 480px) {
2567    width: calc(100% - 1.5rem);
2568    min-height: 78px;
2569    padding: 0.7rem;
2570  }
2571`,kr.div`
2572  width: 44px;
2573  height: 44px;
2574  border-radius: 8px;
2575  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
2576  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2577  display: flex;
2578  align-items: center;
2579  justify-content: center;
2580
2581  i {
2582    font-size: 1.45rem;
2583  }
2584
2585  @media (max-width: 768px) {
2586    width: 38px;
2587    height: 38px;
2588
2589    i {
2590      font-size: 1.2rem;
2591    }
2592  }
2593`,kr.div`
2594  min-width: 0;
2595`,kr.div`
2596  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2597  font-size: 1.7rem;
2598  font-weight: 700;
2599  line-height: 1;
2600  margin-bottom: 0.2rem;
2601
2602  @media (max-width: 768px) {
2603    font-size: 1.35rem;
2604  }
2605`,kr.div`
2606  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2607  font-size: 0.86rem;
2608  font-weight: 600;
2609  line-height: 1.2;
2610`,kr.div`
2611  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2612  font-size: 0.72rem;
2613  line-height: 1.3;
2614  margin-top: 0.25rem;
2615`,kr.div`
2616  display: flex;
2617  flex-direction: column;
2618  gap: 0.35rem;
2619`,kr.span`
2620  width: 7px;
2621  height: 7px;
2622  border-radius: 999px;
2623  background: ${e=>{let{theme:t,$active:n}=e;return n?t.colors.blue9:t.colors.blue5}};
2624  opacity: ${e=>{let{$active:t}=e;return t?1:.65}};
2625  transition: background 0.2s ease, opacity 0.2s ease;
2626`,kr.div`
2627  grid-column: 1 / -1;
2628  height: 56px;
2629  border-radius: 8px;
2630  background: linear-gradient(
2631    90deg,
2632    ${e=>{let{theme:t}=e;return t.colors.blue2}} 25%,
2633    ${e=>{let{theme:t}=e;return t.colors.blue3}} 50%,
2634    ${e=>{let{theme:t}=e;return t.colors.blue2}} 75%
2635  );
2636  background-size: 200% 100%;
2637  animation: ${dp} 1.5s infinite;
2638`,kr.div`
2639  width: 100%;
2640  max-width: 100%;
2641  overflow-x: hidden;
2642  position: relative;
2643`),_p=kr.h1`
2644  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2645  font-size: clamp(1.8rem, 4vw, 2.75rem);
2646  line-height: 1.05;
2647  margin: 0;
2648  padding: 1.5rem 1rem 0;
2649
2650  @media (max-width: 768px) {
2651    font-size: 1.55rem;
2652    padding: 1rem 0.75rem 0;
2653  }
2654`,kp=kr.div`
2655  padding: 1rem;
2656  display: grid;
2657  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
2658  gap: 2rem;
2659  
2660  @media (max-width: 768px) {
2661    grid-template-columns: repeat(2, 1fr);
2662    gap: 0.75rem;
2663    padding: 0.75rem;
2664  }
2665
2666  @media (max-width: 480px) {
2667    grid-template-columns: repeat(2, 1fr);
2668    gap: 0.5rem;
2669    padding: 0.5rem;
2670  }
2671`,Tp=kr.div`
2672  position: absolute;
2673  top: 0;
2674  left: 0;
2675  right: 0;
2676  bottom: 0;
2677  background: rgba(0, 0, 0, 0.5);
2678  display: flex;
2679  align-items: center;
2680  justify-content: center;
2681  opacity: 0;
2682  transition: all 0.3s ease;
2683
2684  i {
2685    font-size: 3rem;
2686    color: white;
2687    transform: scale(0.9);
2688    transition: transform 0.2s ease;
2689
2690    @media (max-width: 768px) {
2691      font-size: 2rem;
2692    }
2693  }
2694
2695  &:hover {
2696    background: rgba(0, 0, 0, 0.7);
2697
2698    i { transform: scale(1); }
2699  }
2700
2701  /* Always show play icon on touch devices */
2702  @media (hover: none) {
2703    opacity: 1;
2704    background: rgba(0, 0, 0, 0.3);
2705
2706    i { transform: scale(1); }
2707  }
2708`,Cp=kr.div`
2709  position: relative;
2710  border-radius: 12px;
2711  overflow: hidden;
2712  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2713  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2714  transition: all 0.3s ease;
2715  cursor: pointer;
2716
2717  &:hover {
2718    transform: translateY(-2px);
2719    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
2720
2721    ${Tp} {
2722      opacity: 1;
2723    }
2724  }
2725
2726  @media (max-width: 768px) {
2727    border-radius: 8px;
2728    border-width: 0.5px;
2729  }
2730`,Sp=kr.div`
2731  padding: 1rem;
2732  
2733  @media (max-width: 768px) {
2734    padding: 0.5rem;
2735  }
2736`,Pp=kr.h3`
2737  font-size: 1.25rem;
2738  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2739  margin-bottom: 0.5rem;
2740  
2741  @media (max-width: 768px) {
2742    font-size: 0.8rem;
2743    margin-bottom: 0.25rem;
2744    line-height: 1.2;
2745  }
2746`,Ap=kr.p`
2747  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2748  font-size: 0.9rem;
2749  line-height: 1.6;
2750  
2751  @media (max-width: 768px) {
2752    font-size: 0.7rem;
2753    line-height: 1.3;
2754    display: -webkit-box;
2755    -webkit-line-clamp: 2;
2756    -webkit-box-orient: vertical;
2757    overflow: hidden;
2758  }
2759`,Rp=kr.div`
2760  position: relative;
2761  padding: 0.75rem;
2762  background: ${e=>{let{theme:t}=e;return t.colors.blue1}};
2763  z-index: 20;
2764  margin-top: 6px;
2765`,Ip=kr.button`
2766  width: 100%;
2767  padding: 0.75rem 1rem;
2768  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
2769  border: none;
2770  border-radius: 8px;
2771  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2772  display: flex;
2773  justify-content: space-between;
2774  align-items: center;
2775  font-size: 0.9rem;
2776  cursor: pointer;
2777  transition: all 0.2s ease;
2778
2779  &:hover {
2780    background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
2781  }
2782
2783  i {
2784    font-size: 1.2rem;
2785  }
2786`,Lp=kr.div`
2787  position: absolute;
2788  top: 100%;
2789  left: 0.75rem;
2790  right: 0.75rem;
2791  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
2792  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2793  border-radius: 8px;
2794  margin-top: 0.5rem;
2795  overflow: hidden;
2796  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
2797`,Op=kr.button`
2798  width: 100%;
2799  padding: 0.75rem 1rem;
2800  background: ${e=>{let{theme:t,active:n}=e;return n?t.colors.blue4:"transparent"}};
2801  border: none;
2802  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2803  text-align: left;
2804  font-size: 0.9rem;
2805  cursor: pointer;
2806  transition: background-color 0.2s;
2807
2808  &:hover {
2809    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
2810  }
2811
2812  & + & {
2813    border-top: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2814  }
2815`,jp=kr.div`
2816  width: 100%;
2817  aspect-ratio: 16/9;
2818  background-image: url(${e=>e.bgImage});
2819  background-size: cover;
2820  background-position: center;
2821`,zp=[{id:"4ab1e772-2b0e-42e9-9410-b3dce186fd98",video_id:"QlbO0LmuKXI",description:"Editor",tag:"Reaction",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"a246155b-9add-4721-a8c3-3913eba3fcc3",video_id:"DGzcJor6__4",description:"Editor",tag:"Podcast",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"3a85878c-34de-404e-8fba-fe104d413274",video_id:"Jdmw9lm5hUA",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"9c264bcd-99f9-4440-b652-e5d671af2f5d",video_id:"VHlZZPmE3IA",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"27c0aed3-b767-4289-9828-0b4da76dc8f1",video_id:"YAOkrN9Bg20",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"5cfc6a0f-4192-4ab8-956c-06e44b47dfb8",video_id:"2cChmdNe11Y",description:"Editor",tag:"Documentary",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"395ea788-606c-4d88-a318-d4ceaef69aaf",video_id:"fJcda05kFQE",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"1b893272-7fa5-45c7-a88a-06663b5e21ac",video_id:"SRvJDrsEPRU",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"edc642b4-9798-4a96-b9fa-69293234f329",video_id:"K3kKSa6Se5U",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"4220c864-eb0d-46b9-abfb-bb7610f0f44a",video_id:"vFTd5QLv-vg",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"ce004b53-962f-4bed-9154-b3e8e1425121",video_id:"gFwGPDadWCQ",description:"Editor",tag:"Commentary",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"45168ea2-c36c-4c92-a098-74092485de71",video_id:"FmqJNmo6p_g",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"64200dc1-6ba4-4e5c-82f7-9bed11159572",video_id:"AEe-og2l2R4",description:"Editor",tag:"Reaction",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"6fdb7eb6-0495-4e75-90f6-fe4a1b9ae8e5",video_id:"pbPG_Wnhevc",description:"Editor",tag:"Commentary",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"7ac4d3af-5f53-405f-973e-ac1219aef262",video_id:"sSM5eN1KupA",description:"Editor",tag:"Reaction",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"8d329fc6-5151-42a3-94d4-29ed3043dc8c",video_id:"buAcXG9f-AA",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"c0357a7b-2189-4a0c-bd1e-5570a5a501e3",video_id:"r-i_YiuoXLM",description:"Editor",tag:"Explainer",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"2c1ac1f9-b950-4f76-8d4f-b298b70ea8c0",video_id:"tDTCJmTdXc8",description:"Editor",tag:"Documentary",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"edcfa4cf-ec30-4887-9bda-62c1a925c0cf",video_id:"aR6nqytYGXo",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"6d98ceba-8aa9-4352-aa6e-406bf2514fae",video_id:"cVRuLaEJij0",description:"Editor",tag:"Interview",created_at:"2026-07-25T14:57:18.549711+00:00"},{id:"8aee0a44-5e22-4220-a2e7-aeb2fe923d1b",video_id:"6u1uT3yeO34",description:"Editor",tag:"Interview",created_at:"2026-07-21T18:03
2821:26.319877+00:00"},{id:"9bf13d99-2b43-49f0-9071-35e5a6538f20",video_id:"n4JXO6EGh9c",description:"Editor",tag:"Reaction",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"7f017633-47ba-4633-a090-31b86198addc",video_id:"3aUtYVr62lw",description:"Editor",tag:"Interview",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"34262b6b-894c-4f68-af3e-740aac0432cd",video_id:"mxapaXrHr1Y",description:"Editor",tag:"Documentary",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"bfc21c09-8b74-4bae-b188-3d793124c09e",video_id:"hv48O6Pngtk",description:"Editor",tag:"Reaction",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"37a4d33f-4d77-4974-8a2b-9f39a937e82a",video_id:"mMMQYz_vJFw",description:"Editor",tag:"Podcast",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"262d9de1-b721-4726-b4d3-3db1b6e38ded",video_id:"qWRxeOZz5L0",description:"Editor",tag:"Documentary",created_at:"2026-07-21T18:00:35.220999+00:00"},{id:"0c287d9a-5385-4ffe-96c0-ae2b7ad1e405",video_id:"sb1Zg1hAHgk",description:"Editor",tag:"Documentary",created_at:"2026-03-01T03:31:12.59519+00:00"},{id:"001cd5fd-431a-4729-a1b8-bbb704bf54ef",video_id:"gWNuS0tRVbY",description:"Editor",tag:"Documentary",created_at:"2026-03-01T03:31:12.59519+00:00"},{id:"40d35612-547c-474c-9ec2-6d147c4946e2",video_id:"PQu1n_OC1eE",description:"Editor",tag:"Documentary",created_at:"2026-03-01T03:31:12.59519+00:00"},{id:"3f9b8386-4009-42f7-9731-f8fcb0e8c169",video_id:"JACxe2Z0wcI",description:"Editor",tag:"Explainer",created_at:"2024-11-16T16:29:36+00:00"},{id:"65b127bb-7e52-4ef2-8df9-bb58ae806925",video_id:"J6-iOtGNWBQ",description:"Editor",tag:"Commentary",created_at:"2024-11-14T17:29:36.142151+00:00"},{id:"6a4ca536-8f74-48ed-945c-1711a2869cd7",video_id:"ZTJfuPBCoKo",description:"Editor, Colorist",tag:"Podcast",created_at:"2024-11-14T17:29:36.142151+00:00"},{id:"b4e7e16c-deca-47b6-8e5e-695309cfcad6",video_id:"D6ThvooDfbA",description:"Videographer, Editor",tag:"Podcast",created_at:"2024-11-14T17:29:36.142151+00:00"},{id:"e73d18cf-ef23-40a2-a7ae-e852c2872749",video_id:"QmVzp5z0C6A",description:"Videographer, Editor",tag:"Commercial",created_at:"2024-11-14T17:29:36.142151+00:00"},{id:"735b8be9-1597-4980-9a31-14213b32eae7",video_id:"iu6Hv-27MRQ",description:"Editor",tag:"Commentary",created_at:"2024-11-14T17:29:36.142151+00:00"},{id:"8888376c-a846-4bec-8d1e-b5d91408ba78",video_id:"eNPZxieTHfI",description:"Editor, Colorist, Sound Mixer",tag:"Short Film",created_at:"2024-11-13T02:53:07.042819+00:00"},{id:"f9882222-6f56-413d-8796-4af54108d971",video_id:"YBUwRg83oqA",description:"Editor, Colorist, Sound Mixer",tag:"Short Film",created_at:"2024-11-12T19:54:40.216734+00:00"},{id:"2a73b52a-c47a-4726-a1b6-5449e9af4b8c",video_id:"O_K5aX9wDvE",description:"Editor, Colorist, Sound Mixer",tag:"Short Film",created_at:"2024-10-16T14:53:07+00:00"},{id:"620a9c85-6296-4bc1-99dc-aab2d88ff274",video_id:"PLeUhJii6Zk",description:"Editor",tag:"Explainer",created_at:"2024-03-01T03:31:12.59519+00:00"},{id:"8c229d4f-303a-4b04-8204-eeef94f44c0e",video_id:"QPRYfLCxA1g",description:"Editor",tag:"Highlights",created_at:"2023-11-16T17:29:36+00:00"}],Np="2026-07-21T00:00:00.000Z",Mp="2026-07-28T00:00:00.000Z",Dp=new Set(["PY3jpEnFYgU","q-WNyhqwu9k","HHkuYf5vv94","2fB0jT1Jb-c","TTJHfSbUadg","N72FQftet5o"]),Up=new Set([...Dp,"QlbO0LmuKXI","VHlZZPmE3IA","sSM5eN1KupA","AEe-og2l2R4","n4JXO6EGh9c","EqhGFf4zBUA","qc9KL1zw10E","4CGBwJKZyzc","biz0T-cmTnE","0OBgv3bkp3k","QWOP7oZDm04","XIuSOriQVn0","2_AaA3xsS0g","1afW4TyuHn4","AmHc9NWOe3E","hv48O6Pngtk","tDTCJmTdXc8","QmVzp5z0C6A"]),Fp=[{id:"fallback-AmHc9NWOe3E",video_id:"AmHc9NWOe3E",description:"Editor",tag:"Commentary",created_at:Mp},{id:"fallback-qUoiagLbLxY",video_id:"qUoiagLbLxY",description:"Editor",tag:"Documentary",created_at:Mp},{id:"fallback-L-1v6vMz0xs",video_id:"L-1v6vMz0xs",description:"Editor",tag:"Commentary",created_at:Mp},{id:"fallback-ja_NIgmBIAI",video_id:"ja_NIgmBIAI",description:"Editor",tag:"Commentary",created_at:Mp},{id:"fallback-mxapaXrHr1Y",video_id:"mxapaXrHr1Y",description:"Editor",tag:"Matt Walsh",created_at:Np},{id:"fallback-3aUtYVr62lw",video_id:"3aUtYVr62lw",description:"Editor",tag:"Ben Shapiro",created_at:Np},{id:"fallback-qWRxeOZz5L0",video_id:"qWRxeOZz5L0",description:"Editor",tag:"Ben Shapiro",created_at:Np},{id:"fallback-mMMQYz_vJFw",video_id:"mMMQYz_vJFw",description:"Editor",tag:"Jordan B Peterson",created_at:Np}],$p=["Documentary","Commentary","Podcast","Short Film","Highlights"],Vp={Interview:"Podcast",Reaction:"Commentary",Explainer:"Commentary","Mini Documentary":"Documentary","Ben Shapiro":"Commentary","Brett Cooper":"Commentary","Jordan B Peterson":"Podcast","Matt Walsh":"Documentary","Michael Knowles":"Commentary","The Daily Wire":"Podcast","Daily Wire News":"Documentary"},Bp=async()=>(e=>{const t=e.filter((e=>!Up.has(e.video_id))),n=new Set(t.map((e=>e.video_id)));return[...Fp.filter((e=>!n.has(e.video_id)&&!Up.has(e.video_id))),...t].sort(((e,t)=>new Date(t.created_at).getTime()-new Date(e.created_at).getTime()))})(zp).map((e=>{return{...e,tag:(t=e.tag,Vp[t]||t)};var t})),Hp=async()=>{const e=(await Bp()).map((e=>e.tag));return(e=>[...e].sort(((e,t)=>{const n=$p.indexOf(e),r=$p.indexOf(t);return-1!==n&&-1!==r?n-r:-1!==n?-1:-1!==r?1:e.localeCompare(t)})))([...new Set(e)])},Gp=()=>{const[e,t]=(0,o.useState)([]),[n,r]=(0,o.useState)(["All"]),[i,a]=(0,o.useState)("All"),[l,s]=(0,o.useState)(null),[c,u]=(0,o.useState)(!0),[d,p]=(0,o.useState)(!1),[f,m]=(0,o.useState)(!1);Co({title:"Portfolio | Austin Davenport",description:"Selected professional video-editing work from Austin Davenport, including client videos, showreel, analytics, and categorized portfolio pieces.",path:"/portfolio"}),(0,o.useEffect)((()=>{const e=()=>{p(window.innerWidth<=768)};return e(),window.addEventListener("resize",e),()=>window.removeEventListener("resize",e)}),[]),(0,o.useEffect)((()=>{(async()=>{try{const e=await Bp(),n=await Promise.all(e.map((async e=>{const t=await Nd.getVideoDetails(e.video_id);
2821return{...e,title:null===t||void 0===t?void 0:t.title,thumbnail:null===t||void 0===t?void 0:t.thumbnail}})));t(n);const o=await Hp();r(["All",...o])}catch{}finally{u(!1)}})()}),[]);const h="All"===i?e:e.filter((e=>e.tag===i)),g=(0,o.useCallback)((e=>{s(e),document.body.style.overflow="hidden"}),[]),b=(0,o.useCallback)((()=>{s(null),document.body.style.overflow="unset"}),[]);if(c)return(0,$r.jsx)(Ep,{children:(0,$r.jsx)(kp,{children:Array.from({length:8}).map(((e,t)=>(0,$r.jsxs)(pp,{children:[(0,$r.jsx)(fp,{}),(0,$r.jsx)(mp,{width:"75%"}),(0,$r.jsx)(mp,{width:"50%"})]},t)))})});return(0,$r.jsxs)(Ep,{children:[(0,$r.jsx)(_p,{children:"Portfolio"}),d?(0,$r.jsxs)(Rp,{children:[(0,$r.jsxs)(Ip,{onClick:()=>{m(!f)},children:[(0,$r.jsx)("span",{children:i}),(0,$r.jsx)("i",{className:"bx bx-chevron-down"})]}),f&&(0,$r.jsx)(Lp,{children:n.map((e=>(0,$r.jsx)(Op,{onClick:()=>(e=>{a(e),m(!1)})(e),active:i===e,children:e},e)))})]}):(0,$r.jsx)(yp,{id:"categories",children:(0,$r.jsx)(xp,{children:n.map((e=>(0,$r.jsx)(wp,{active:i===e,onClick:()=>a(e),children:e},e)))})}),(0,$r.jsx)(kp,{children:h.map((e=>(0,$r.jsxs)(Cp,{onClick:()=>g(e),children:[(0,$r.jsx)(jp,{bgImage:e.thumbnail||""}),(0,$r.jsx)(Tp,{className:"video-overlay",children:(0,$r.jsx)("i",{className:"bx bx-play-circle"})}),(0,$r.jsxs)(Sp,{children:[(0,$r.jsx)(Pp,{children:e.title||"Loading..."}),(0,$r.jsx)(Ap,{children:e.description})]})]},e.id)))}),(0,$r.jsx)(hp,{isOpen:!!l,role:"dialog","aria-label":"Video player","aria-modal":"true",children:l&&(0,$r.jsxs)(gp,{children:[(0,$r.jsx)(vp,{onClick:b,"aria-label":"Close video",children:(0,$r.jsx)("i",{className:"bx bx-x"})}),(0,$r.jsx)(bp,{src:`https://www.youtube.com/embed/${l.video_id}`,title:l.title||"",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})]})})]})},Yp=kr.div`
2822  width: 100%;
2823  padding: 3rem 1rem 4rem;
2824
2825  @media (max-width: 768px) {
2826    padding: 2rem 0.5rem 3rem;
2827  }
2828`,Wp=kr.article`
2829  max-width: 860px;
2830  margin: 0 auto;
2831  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2832`,Kp=kr.header`
2833  padding-bottom: 2rem;
2834  margin-bottom: 2rem;
2835  border-bottom: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2836`,qp=kr.p`
2837  margin: 0 0 0.75rem;
2838  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2839  font-size: 0.78rem;
2840  font-weight: 700;
2841  letter-spacing: 0.08em;
2842  text-transform: uppercase;
2843`,Qp=kr.h1`
2844  margin: 0 0 1rem;
2845  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2846  font-size: 2.6rem;
2847  line-height: 1.12;
2848  font-weight: 700;
2849
2850  @media (max-width: 768px) {
2851    font-size: 2rem;
2852  }
2853
2854  @media (max-width: 480px) {
2855    font-size: 1.65rem;
2856  }
2857`,Xp=kr.p`
2858  margin: 0;
2859  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2860  font-size: 0.98rem;
2861`,Jp=kr.section`
2862  margin-bottom: 2rem;
2863
2864  p {
2865    margin: 0 0 1rem;
2866    font-size: 1rem;
2867    line-height: 1.75;
2868
2869    &:last-child {
2870      margin-bottom: 0;
2871    }
2872  }
2873
2874  @media (max-width: 480px) {
2875    margin-bottom: 1.5rem;
2876
2877    p {
2878      font-size: 0.92rem;
2879      line-height: 1.65;
2880    }
2881  }
2882`,Zp=kr.h2`
2883  margin: 0 0 0.85rem;
2884  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2885  font-size: 1.25rem;
2886  line-height: 1.3;
2887`,ef=kr.ul`
2888  margin: 0 0 1rem;
2889  padding-left: 1.4rem;
2890
2891  li {
2892    margin-bottom: 0.55rem;
2893    line-height: 1.6;
2894
2895    &:last-child {
2896      margin-bottom: 0;
2897    }
2898  }
2899
2900  @media (max-width: 480px) {
2901    padding-left: 1.15rem;
2902
2903    li {
2904      font-size: 0.92rem;
2905    }
2906  }
2907`,tf=kr.address`
2908  display: flex;
2909  flex-direction: column;
2910  gap: 0.4rem;
2911  font-style: normal;
2912
2913  strong {
2914    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2915  }
2916
2917  a {
2918    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2919    overflow-wrap: anywhere;
2920  }
2921`,nf=["Copying a YouTube transcript to your clipboard","Copying visible video metadata","Saving a video screenshot locally","Hiding selected YouTube page elements","Exporting visible YouTube Studio data into a local file","Adjusting the YouTube viewing interface in your browser"],rf=()=>(Co({title:"Privacy Policy | Austin Davenport",description:"Privacy information for AustinDavenport.com, Creator Updates, contact forms, analytics, embedded media, external links, and Austin Davenport Chrome extensions.",path:"/privacy-policy"}),(0,$r.jsx)(Yp,{children:(0,$r.jsxs)(Wp,{children:[(0,$r.jsxs)(Kp,{children:[(0,$r.jsx)(qp,{children:"Website and Extension Privacy Policy"}),(0,$r.jsx)(Qp,{children:"Privacy Policy"}),(0,$r.jsx)(Xp,{children:"Effective date: July 31, 2026"})]}),(0,$r.jsx)(Jp,{children:(0,$r.jsx)("p",{children:"This page explains how AustinDavenport.com handles information for the website, contact form, Creator Updates signup, analytics, embedded media, external links, and Chrome extensions published by Austin Davenport."})}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Website Information We Collect"}),(0,$r.jsx)("p",{children:"If you submit the contact form, the information you enter, such as your name, email address, project type, and message, is sent through the form provider so Austin can respond to your inquiry."}),(0,$r.jsx)("p",{children:"If you sign up for Creator Updates, your email address and signup source may be sent to Kit so Austin can send occasional updates about new tools, major product changes, and useful creator resources. Submitting the signup form adds your email to the Creator Updates list."}),(0,$r.jsx)("p",{children:"The site uses Vercel Analytics for general usage measurement. Custom analytics events may record non-sensitive interaction details such as a clicked tool ID, c
2921ategory, platform, source page, or search query length. Email addresses, names, messages, payment information, and contact-form contents are not intentionally sent in analytics events."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Website Services and Embedded Content"}),(0,$r.jsx)("p",{children:"Some website content is loaded from Supabase, including public blog, project, and portfolio records. YouTube embeds and thumbnails may load content directly from YouTube or Google. Product, support, Discord, Spotify, Adobe Exchange, Notion, Fourthwall, Buy Me a Coffee, and other external links take you to third-party websites that have their own privacy practices."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Chrome Extension Privacy Policy"}),(0,$r.jsx)("p",{children:"The following extension privacy information applies to Chrome extensions published by Austin Davenport for YouTube and YouTube Studio utility workflows, including tools for copying transcripts, descriptions, and tags; adjusting playback; hiding YouTube interface elements; saving screenshots; exporting Studio analytics; and other small single-purpose YouTube utilities."}),(0,$r.jsx)("p",{children:"These extensions are independent and are not affiliated with YouTube or Google."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Extension Information We Access"}),(0,$r.jsx)("p",{children:"Our extensions may access website content on YouTube or YouTube Studio pages only as needed to provide the extension's stated feature. For example, an extension may read a visible transcript so it can copy that transcript, read visible metadata so it can copy tags or descriptions, capture the current video frame for a screenshot, or inspect page elements so it can hide or adjust parts of the YouTube interface."}),(0,$r.jsx)("p",{children:"This processing happens locally in your browser."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Extension Information We Do Not Collect"}),(0,$r.jsx)("p",{children:"We do not collect, store, sell, rent, or transfer your personal information."}),(0,$r.jsx)("p",{children:"We do not collect names, email addresses, payment information, health information, authentication information, personal communications, precise location, browsing history, or user activity logs."}),(0,$r.jsx)("p",{children:"We do not use analytics, advertising trackers, background tracking, remote logging, or profiling in these extensions."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"How Extension Information Is Used"}),(0,$r.jsx)("p",{children:"Website content accessed by an extension is used only to provide that extension's user-facing feature."}),(0,$r.jsx)(ef,{"aria-label":"Examples of extension features",children:nf.map((e=>(0,$r.jsx)("li",{children:e},e)))}),(0,$r.jsx)("p",{children:"We do not send this information to our servers."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Extension Data Sharing"}),(0,$r.jsx)("p",{children:"We do not sell user data."}),(0,$r.jsx)("p",{children:"We do not transfer user data to advertising platforms, data brokers, or other third parties."}),(0,$r.jsx)("p",{children:"We do not use or transfer user data for purposes unrelated to an extension's single purpose."}),(0,$r.jsx)("p",{children:"We do not use or transfer user data to determine creditworthiness or for lending purposes."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Extension Remote Code"}),(0,$r.jsx)("p",{children:"Our extensions do not use remote code. Extension code is packaged with the Chrome extension. External websites may be opened only when you choose to click an optional support or donation link."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Third-Party Links"}),(0,$r.jsx)("p",{children:"Some extension popups may include an optional donation or support link, such as Buy Me a Coffee. If you click that link, you will leave the extension and visit a third-party website. That website's own privacy policy applies."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Data Security"}),(0,$r.jsx)("p",{children:"Because our extensions do not transmit user data to our servers, most extension processing remains local to your browser. If a future extension feature ever requires data transmission, it will be disclosed and protected using modern secure transmission methods."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Chrome Web Store Limited Use Disclosure"}),(0,$r.jsx)("p",{children:"Our use of information, including any information received from Google APIs if applicable, complies with the Chrome Web Store User Data Policy, including the Limited Use requirements."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Changes to This Policy"}),(0,$r.jsx)("p",{children:"We may update this Privacy Policy if our extensions or privacy practices change. The updated version will be posted on this page with a new effective date."})]}),(0,$r.jsxs)(Jp,{children:[(0,$r.jsx)(Zp,{children:"Contact"}),(0,$r.jsx)("p",{children:"For privacy questions, contact:"}),(0,$r.jsxs)(tf,{children:[(0,$r.jsx)("strong",{children:"Austin Davenport"}),(0,$r.jsx)("a",{href:"https://www.austindavenport.com/contact",children:"https://www.austindavenport.com/contact"})]})]})]})})),of=kr.div`
2922  max-width: 1400px;
2923  margin: 0 auto;
2924  padding: 4rem 2rem;
2925  
2926  @media (max-width: 768px) {
2927    padding: 1rem 0.85rem 2.75rem;
2928  }
2929`,af=kr.div`
2930  margin-bottom: 4rem;
2931  text-align: center;
2932  max-width: 800px;
2933  margin-left: auto;
2934  margin-right: auto;
2935
2936  @media (max-width: 768px) {
2937    margin-bottom: 1.25rem;
2938  }
2939`,lf=kr.h1`
2940  font-size: 3rem;
2941  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
2942  margin-bottom: 1.5rem;
2943  position: relative;
2944  
2945  &::after {
2946    content: '';
2947    position: absolute;
2948    bottom: -10px;
2949    left: 50%;
2950    transform: translateX(-50%);
2951    width: 60px;
2952    height: 3px;
2953    background: linear-gradient(90deg, var(--project4) 0%, var(--project6) 100%);
2954    border-radius: 2px;
2955  }
2956  
2957  @media (max-width: 768px) {
2958    font-size: 1.55rem;
2959    margin-bottom: 0.75rem;
2960
2961    &::after {
2962      bottom: -6px;
2963      width: 38px;
2964      height: 2px;
2965    }
2966  }
2967`,sf=kr.p`
2968  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2969  font-size: 1.25rem;
2970  line-height: 1.6;
2971  margin-bottom: 2rem;
2972  
2973  @media (max-width: 768px) {
2974    font-size: 0.82rem;
2975    line-height: 1.35;
2976    margin: 0 auto;
2977    max-width: 22rem;
2978  }
2979`,cf=Sr`
2980  0% { transform: rotate(0deg); }
2981  100% { transform: rotate(360deg); }
2982`,uf=(kr.div`
2983  display: flex;
2984  flex-direction: column;
2985  justify-content: center;
2986  align-items: center;
2987  min-height: 300px;
2988  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
2989  font-size: 1.1rem;
2990  gap: 1.5rem;
2991`,kr.div`
2992  width: 40px;
2993  height: 40px;
2994  border: 3px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
2995  border-top: 3px solid var(--project4);
2996  border-radius: 50%;
2997  animation: ${cf} 1.2s linear infinite;
2998`,kr.div`
2999  display: flex;
3000  flex-direction: column;
3001  justify-content: center;
3002  align-items: center;
3003  gap: 1rem;
3004  min-height: 300px;
3005  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3006  text-align: center;
3007  font-size: 1.1rem;
3008`,kr.div`
3009  display: grid;
3010  grid-template-columns: repeat(3, 1fr);
3011  gap: 2.5rem;
3012  
3013  @media (max-width: 992px) {
3014    grid-template-columns: repeat(2, minmax(0, 1fr));
3015    gap: 1rem;
3016  }
3017
3018  @media (max-width: 480px) {
3019    gap: 0.7rem;
3020  }
3021`),df=kr.a`
3022  position: relative;
3023  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3024  border-radius: 16px;
3025  overflow: hidden;
3026  display: flex;
3027  flex-direction: column;
3028  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3029  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
3030  text-decoration: none;
3031  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
3032  height: 100%;
3033  
3034  &:hover {
3035    transform: translateY(-3px);
3036    border-color: ${e=>e.accentColor};
3037    box-shadow: 0 15px 35px ${e=>`${e.accentColor}20`};
3038    
3039    & >
3039 div:first-child > div:first-child {
3040      transform: scale(1.05);
3041    }
3042  }
3043  
3044  &.project-tile.visible {
3045    opacity: 1;
3046  }
3047  
3048  @media (max-width: 768px) {
3049    max-width: 100%;
3050    border-radius: 10px;
3051  }
3052`,pf=kr.div`
3053  position: relative;
3054  width: 100%;
3055  height: 390px; 
3056  overflow: hidden;
3057  
3058  @media (max-width: 768px) {
3059    height: auto;
3060    aspect-ratio: 1 / 1;
3061  }
3062`,ff=kr.div`
3063  width: 100%;
3064  height: 100%;
3065  background-size: cover;
3066  background-position: center;
3067  transition: transform 0.6s ease;
3068`,mf=kr.div`
3069  position: absolute;
3070  top: 0;
3071  left: 0;
3072  width: 100%;
3073  height: 100%;
3074  background: linear-gradient(to top, ${e=>e.color}90 0%, transparent 100%);
3075  mix-blend-mode: multiply;
3076  opacity: 0.5;
3077`,hf=kr.div`
3078  position: absolute;
3079  top: 16px;
3080  right: -30px;
3081  background: white;
3082  color: #333;
3083  padding: 0.25rem 2rem;
3084  font-size: 0.8rem;
3085  font-weight: 600;
3086  transform: rotate(45deg);
3087  z-index: 2;
3088  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
3089`,gf=kr.div`
3090  padding: 2rem; /* Increased padding for better balance with taller images */
3091  display: flex;
3092  flex-direction: column;
3093  flex-grow: 1;
3094
3095  @media (max-width: 768px) {
3096    padding: 0.65rem;
3097  }
3098`,bf=kr.div`
3099  display: inline-block;
3100  padding: 0.35rem 0.75rem;
3101  background: ${e=>`${e.color}15`};
3102  color: ${e=>e.color};
3103  border-radius: 4px;
3104  font-size: 0.85rem;
3105  font-weight: 500;
3106  margin-bottom: 1.25rem;
3107  width: fit-content;
3108
3109  @media (max-width: 768px) {
3110    font-size: 0.58rem;
3111    line-height: 1.1;
3112    margin-bottom: 0.45rem;
3113    max-width: 100%;
3114    overflow: hidden;
3115    padding: 0.22rem 0.42rem;
3116    text-overflow: ellipsis;
3117    white-space: nowrap;
3118  }
3119`,vf=kr.h2`
3120  font-size: 1.875rem; /* Slightly larger to match taller images */
3121  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3122  margin: 0 0 1rem;
3123  font-weight: 600;
3124  line-height: 1.3;
3125  
3126  @media (max-width: 768px) {
3127    font-size: 0.86rem;
3128    line-height: 1.08;
3129    margin-bottom: 0.35rem;
3130  }
3131`,yf=kr.p`
3132  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3133  margin: 0 0 1.5rem;
3134  line-height: 1.6;
3135  font-size: 1rem;
3136  flex-grow: 1;
3137
3138  @media (max-width: 768px) {
3139    display: none;
3140  }
3141`,xf=Sr`
3142  0% { transform: translateX(0); }
3143  50% { transform: translateX(5px); }
3144  100% { transform: translateX(0); }
3145`,wf=kr.div`
3146  display: flex;
3147  align-items: center;
3148  gap: 0.5rem;
3149  color: ${e=>e.color};
3150  font-weight: 600;
3151  font-size: 1rem;
3152  transition: all 0.3s ease;
3153  width: fit-content;
3154  margin-top: auto;
3155  
3156  i {
3157    font-size: 1.25rem;
3158    transition: transform 0.3s ease;
3159  }
3160  
3161  &:hover {
3162    i {
3163      animation: ${xf} 1s ease infinite;
3164    }
3165  }
3166
3167  @media (max-width: 768px) {
3168    gap: 0.25rem;
3169    font-size: 0.72rem;
3170
3171    i {
3172      font-size: 0.95rem;
3173    }
3174  }
3175`,Ef=kr.span`
3176  @media (max-width: 768px) {
3177    display: none;
3178  }
3179`,_f=kr.span`
3180  display: none;
3181
3182  @media (max-width: 768px) {
3183    display: inline;
3184  }
3185`,kf=[{id:5,title:"YouTool.io",description:"A powerful suite of analytics and growth tools built specifically for YouTube creators. Turn data into actionable insights that help you understand what your audience truly wants.",image_url:"https://64.media.tumblr.com/377e88f933f314338ba9608900174dc9/7c0180d0d1212074-5a/s1280x1920/a048ccb1bec91251584811a90d7551c9f7b4ceb7.pnj",project_url:"https://www.youtool.io",color_accent:"#bf2c1f",category:"Analytics",featured:!0,created_at:"2025-05-20T05:48:02.924591+00:00"},{id:4,title:"Smooth It",description:"Smooth It creates and applies custom easing curves to keyframed properties.",image_url:"https://64.media.tumblr.com/ac6b24eb89f0c1a5968cdeff134b1d87/de37173ea8e82b4a-76/s1280x1920/be943a97ff80dbace88c7692a05f7f3747901641.pnj",project_url:"https://exchange.adobe.com/apps/cc/fc1418c4/smooth-it",color_accent:"#4287f5",category:"Editing Tools",featured:!1,created_at:"2022-05-20T13:58:11+00:00"},{id:3,title:"Clipboard It",description:"Reimagining how editors share and reuse elements between projects. Designed for professionals who need to move fast without sacrificing quality or creative flow.",image_url:"https://imgproxy.fourthwall.com/NSD2usD9hYTysLDRn1nsl2le1Wj4LLGV3f-bqk1H1X0/w:720/sm:1/enc/OTk0NmI0NjQ1Yzli/YTczNN7v8sTooFr_/69APhnk512swjQmE/LU9wZ_gIvt3bh8II/9lan9TDd1fgslTKJ/_rVZKHQCjnTmPrYM/UTZavpQa9yN10avg/fBm3bDJjQOw1jAVI
3185/S4jsp4uU7ius6dKQ/D20X9SLihVh0HP6e/8hBCkYiyyD_uUslv/E8aUFXGNSvdoX8no/KeRqwkLy-Jf2qmDF/OG5FrQ.webp",project_url:"https://clipboard.it.com",color_accent:"#8338EC",category:"Editing Tools",featured:!1,created_at:"2025-05-20T05:48:02.924591+00:00"},{id:2,title:"Link-In-Bio Page Maker",description:"Beautiful link pages that reflect your personal brand. Eliminate the middleman and take control of your audience and their journey with custom designs that captivate and convert.",image_url:"https://imgproxy.fourthwall.com/-sRNLeEHYub1Mu4_xFNuPc95aDsiehM3lx357-MSABA/w:720/sm:1/enc/MzNhNjY2ZDQxNTgw/MTFjOOWDEr73rTRg/jwnx6r_nJ5Q8_Q4i/ON0Gp-3RzRCwFgkV/1sJ8rfpnzD8j-hv_/owsCCRovJvvByk81/45hia7fp97fjLYLh/OqcUnH2RioER1EPb/DqyBl2UODmnwBUiM/nXAeCzvDqreP605T/ag5EijuzGACLixFm/CnRSPj53pkbblXYN/Qrgts9LR--shPaga/z8WyYg.webp",project_url:"https://www.youtool.io/tools/link-in-bio-builder",color_accent:"#06D6A0",category:"Creator Tools",featured:!1,created_at:"2025-05-20T05:48:02.924591+00:00"},{id:1,title:"Notion Templates",description:"Planner templates for content creators. Includes the YouTube Planner and Planner+.",image_url:"https://64.media.tumblr.com/c01181b742fa764eab63dd7544a073c8/9e2beede650be6dd-4e/s1280x1920/dccedfb87e52ef0ab653c694afd2dc57721d0665.pnj",project_url:"https://www.notion.so/@austindavenport",color_accent:"#d1d1d1",category:"Productivity Tools",featured:!1,created_at:"2023-06-20T02:37:12+00:00"}],Tf=()=>{const e=(0,o.useRef)([]);return Co({title:"Projects | Austin Davenport",description:"Curated substantial projects Austin Davenport has built, including YouTool.io, ClipboardIt, Smooth It, Notion templates, and creator tools.",path:"/projects"}),(0,o.useEffect)((()=>{if(kf.length>0&&e.current.length>0){const t=new IntersectionObserver((e=>{e.forEach((e=>{e.isIntersecting&&e.target.classList.add("visible")}))}),{threshold:.1,rootMargin:"0px 0px -10% 0px"});return e.current.forEach((e=>{e&&t.observe(e)})),()=>t.disconnect()}}),[kf,e.current]),(0,$r.jsxs)(of,{children:[(0,$r.jsxs)(af,{children:[(0,$r.jsx)(lf,{children:"Projects"}),(0,$r.jsx)(sf,{children:"Small tools, products, and creative experiments I've built for content creators."})]}),(0,$r.jsx)(uf,{children:kf.map(((t,n)=>(0,$r.jsxs)(df,{ref:t=>e.current[n]=t,accentColor:t.color_accent,className:"project-tile",href:t.project_url,target:"_blank",rel:"noopener noreferrer",style:{animationDelay:.1*n+"s"},children:[(0,$r.jsxs)(pf,{children:[(0,$r.jsx)(ff,{style:{backgroundImage:`url(${t.image_url})`}}),(0,$r.jsx)(mf,{color:t.color_accent}),t.featured&&(0,$r.jsx)(hf,{children:"Featured"})]}),(0,$r.jsxs)(gf,{children:[(0,$r.jsx)(bf,{color:t.color_accent,children:t.category}),(0,$r.jsx)(vf,{children:t.title}),(0,$r.jsx)(yf,{children:t.description}),(0,$r.jsxs)(wf,{color:t.color_accent,children:[(0,$r.jsx)(Ef,{children:"Explore Project"}),(0,$r.jsx)(_f,{children:"Open"}),(0,$r.jsx)("i",{className:"bx bx-right-arrow-alt"})]})]})]},t.id)))})]})},Cf="9751653",Sf={NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
3185,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_KIT_FORM_ACTION,Pf=kr.form`
3186  background: ${e=>{let{$compact:t,theme:n}=e;return t?"transparent":n.colors.blue2}};
3187  border: ${e=>{let{$compact:t,theme:n}=e;return t?"0":`1px solid ${n.colors.blue3}`}};
3188  border-radius: ${e=>{let{$compact:t}=e;return t?"14px":"16px"}};
3189  box-shadow: ${e=>{let{$compact:t}=e;return t?"none":"inset 0 1px 0 rgba(250, 252, 255, 0.04)"}};
3190  display: ${e=>{let{$hasVisual:t}=e;return t?"grid":"block"}};
3191  grid-template-columns: ${e=>{let{$hasVisual:t,$sourcePage:n}=e;return t?"links"===n?"1fr":"minmax(0, 1fr) minmax(340px, 0.48fr)":"1fr"}};
3192  overflow: hidden;
3193
3194  @media (max-width: 620px) {
3195    grid-template-columns: 1fr;
3196  }
3197`,Af=kr.div`
3198  display: grid;
3199  gap: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.95rem":"1.35rem"}};
3200  padding: ${e=>{let{$sourcePage:t}=e;return"links"===t?"1.25rem":"2rem 2rem 1.9rem"}};
3201
3202  @media (max-width: 620px) {
3203    padding: 1.5rem;
3204  }
3205`,Rf=kr.div`
3206  min-width: 0;
3207`,If=kr.div`
3208  min-height: ${e=>{let{$sourcePage:t}=e;return"links"===t?"158px":"240px"}};
3209  background:
3210    radial-gradient(circle at 88% 8%, rgba(109, 26, 224, 0.34), transparent 42%),
3211    ${e=>{let{theme:t}=e;return t.colors.blue1}};
3212  border-left: ${e=>{let{$sourcePage:t,theme:n}=e;return"links"===t?"0":`1px solid ${n.colors.blue3}`}};
3213  border-top: ${e=>{let{$sourcePage:t,theme:n}=e;return"links"===t?`1px solid ${n.colors.blue3}`:"0"}};
3214  overflow: hidden;
3215  position: relative;
3216
3217  @media (max-width: 620px) {
3218    border-left: 0;
3219    border-top: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3220    min-height: 200px;
3221  }
3222`,Lf=kr.div`
3223  position: absolute;
3224  right: -70px;
3225  top: -90px;
3226  width: 280px;
3227  height: 280px;
3228  border-radius: 50%;
3229  background: #6d1ae0;
3230  filter: blur(8px);
3231  opacity: 0.16;
3232`,Of=kr.img`
3233  position: absolute;
3234  left: 12%;
3235  top: 50%;
3236  width: ${e=>{let{$sourcePage:t}=e;return"links"===t?"48%":"46%"}};
3237  min-width: ${e=>{let{$sourcePage:t}=e;return"links"===t?"132px":"170px"}};
3238  transform: translateY(-46%);
3239  filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.65));
3240`,jf=kr.img`
3241  position: absolute;
3242  right: 12%;
3243  top: 50%;
3244  width: ${e=>{let{$sourcePage:t}=e;return"links"===t?"24%":"22%"}};
3245  min-width: ${e=>{let{$sourcePage:t}=e;return"links"===t?"68px":"86px"}};
3246  border: 1px solid #3a3d42;
3247  border-radius: 6px;
3248  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.6);
3249  transform: translateY(-62%) rotate(6deg);
3250`,zf=kr.div`
3251  min-width: 0;
3252  display: grid;
3253  gap: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.55rem":"1rem"}};
3254
3255  h2 {
3256    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3257    font-size: ${e=>{let{$sourcePage:t}=e;return"links"===t?"clamp(1.1rem, 5vw, 1.3rem)":"clamp(1.35rem, 2.4vw, 1.65rem)"}};
3258    font-weight: 800;
3259    line-height: ${e=>{let{$sourcePage:t}=e;return"links"===t?"1.18":"1.14"}};
3260    margin: 0;
3261  }
3262
3263  p {
3264    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3265    font-size: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.86rem":"clamp(0.92rem, 1.4vw, 1rem)"}};
3266    line-height: ${e=>{let{$sourcePage:t}=e;return"links"===t?"1.45":"1.55"}};
3267    margin: 0;
3268    max-width: 28em;
3269  }
3270`,Nf=kr.div`
3271  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3272  font-size: 0.72rem;
3273  font-weight: 700;
3274  letter-spacing: 0;
3275  text-transform: uppercase;
3276`,Mf=kr.div`
3277  display: grid;
3278  gap: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.45rem":"0.65rem"}};
3279`,Df=kr.label`
3280  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3281  font-size: clamp(0.92rem, 1.5vw, 1.05rem);
3282  font-weight: 800;
3283`,Uf=kr.div`
3284  display: grid;
3285  grid-template-columns: 1fr auto;
3286  margin-right: 20%;
3287  align-items: stretch;
3288  background: ${e=>{let{theme:t}=e;return t.colors.blue1}};
3289  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3290  border-radius: ${e=>{let{$sourcePage:t}=e;return"links"===t?"12px":"18px"}};
3291  padding: ${e=>{let{$sourcePage:t}=e;return"links"===t?"4px":"6px"}};
3292
3293  @media (max-width: 420px) {
3294    grid-template-columns: 1fr auto;
3295  }
3296`,Ff=kr.input`
3297  min-width: 0;
3298  width: 100%;
3299  min-height: ${e=>{let{$sourcePage:t}=e;return"links"===t?"44px":"52px"}};
3300  background: transparent;
3301  border: 0;
3302  border-radius: ${e=>{let{$sourcePage:t}=e;return"links"===t?"9px":"12px"}};
3303  box-sizing: border-box;
3304  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3305  font-family: inherit;
3306  font-size: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.92rem":"1rem"}};
3307  line-height: 1.1;
3308  padding: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.75rem 0.85rem":"0.85rem 1rem"}};
3309
3310  &:focus {
3311    border-color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
3312    outline: none;
3313  }
3314`,$f=kr.button`
3315  min-height: ${e=>{let{$sourcePage:t}=e;return"links"===t?"44px":"52px"}};
3316  background: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3317  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue9}};
3318  border-radius: ${e=>{let{$sourcePage:t}=e;return"links"===t?"9px":"12px"}};
3319  box-sizing: border-box;
3320  color: ${e=>{let{theme:t}=e;return t.colors.blue1}};
3321  display: inline-flex;
3322  align-items: center;
3323  justify-content: center;
3324  font-family: inherit;
3325  font-size: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.9rem":"1rem"}};
3326  font-weight: 800;
3327  line-height: 1.1;
3328  padding: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0 1rem":"0 1.25rem"}};
3329  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
3330  white-space: nowrap;
3331
3332  &:hover:not(:disabled) {
3333    background: ${e=>{let{theme:t}=e;return t.colors.blue12}};
3334    transform: translateY(-1px);
3335  }
3336
3337  &:disabled {
3338    opacity: 0.7;
3339    cursor: wait;
3340  }
3341`,Vf=kr.div`
3342  min-height: 1.2em;
3343  color: ${e=>{let{theme:t,$status:n}=e;return"error"===n?"#ffb4a8":t.colors.blue11}};
3344  font-size: 0.78rem;
3345  line-height: 1.45;
3346`,Bf=kr.p`
3347  align-items: center;
3348  color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
3349  display: flex;
3350  font-size: ${e=>{let{$sourcePage:t}=e;return"links"===t?"0.78rem":"0.82rem"}};
3351  gap: 0.5rem;
3352  line-height: 1.35;
3353  margin: -0.15rem 0 0;
3354
3355  &::before {
3356    background: ${e=>{let{theme:t}=e;return t.colors.blue8}};
3357    border-radius: 50%;
3358    content: '';
3359    flex: 0 0 auto;
3360    height: 5px;
3361    width: 5px;
3362  }
3363`,Hf={FormCard:Pf,ContentPanel:Af,Copy:Rf,CopyText:zf,VisualPanel:If,VisualGlow:Lf,ProductBox:Of,GuideCover:jf,Kicker:Nf,FieldGroup:Mf,Label:Df,InputRow:Uf,Input:Ff,SubmitButton:$f,Note:Bf,Message:Vf},Gf=e=>{let{source:t,compact:n=!1,showCopy:r=!0,showVisual:i=!1}=e;const[a,l]=(0,o.useState)(""),[s,c]=(0,o.useState)("idle"),[u,d]=(0,o.useState)(""),p="source_links"===t?"links":"store";return(0,$r.jsxs)(Hf.FormCard,{id:"creator-updates",onSubmit:async e=>{e.preventDefault(),c("loading"),d(""),qc(`${p}_creator_updates_started`,{source_page:p});try{await(async e=>{let{email:t,source:n}=e;const r=Sf||`https://app.kit.com/forms/${Cf}/subscriptions`,o=new FormData;if(o.append("email_address",t),o.append("fields[source]",n),o.append("fields[lead_magnet]","client_project_folder_guide"),o.append("tags[]",n),o.append("tags[]","interest_creator_tools"),o.append("tags[]","interest_client_project_folder_guide"),!(await fetch(r,{method:"POST",body:o,headers:{Accept:"application/json"}})).ok)throw new Error("Could not subscribe right now. Please try again later.");return{success:!0}})({email:a,source:t}),c("success"),d("You are on the list. I will send the project folder and guide there."),l(""),qc(`${p}_creator_updates_completed`,{source_page:p})}catch(n){c("error"),d(n instanceof Error?n.message:"Could not subscribe right now.")}},noValidate:!0,$compact:n,$hasVisual:i,$sourcePage:p,children:[(0,$r.jsxs)(Hf.ContentPanel,{$sourcePage:p,children:[r&&(0,$r.jsx)(Hf.Copy,{children:(0,$r.jsxs)(Hf.CopyText,{$sourcePage:p,children:[(0,$r.jsx)("h2",{children:"Creator Updates + Free Gift \ud83c\udf81"}),(0,$r.jsx)("p",{children:"Get the project folder I use for client work, plus a guide on how to use it."})]})}),(0,$r.jsxs)(Hf.FieldGroup,{$sourcePage:p,children:[(0,$r.jsx)(Hf.Label,{htmlFor:`${t}-creator-email`,children:"Email address"}),(0,$r.jsxs)(Hf.InputRow,{$sourcePage:p,children:[(0,$r.jsx)(Hf.Input,{id:`${t}-creator-email`,type:"email",name:"email",autoComplete:"email",placeholder:"[email protected]",value:a,onChange:e=>l(e.target.value),required:!0,"aria-describedby":`${t}-creator-message`,$sourcePage:p}),(0,$r.jsx)(Hf.SubmitButton,{type:"submit",disabled:"loading"===s,$sourcePage:p,children:"loading"===s?"Sending...":"Send it"})]})]}),(0,$r.jsx)(Hf.Note,{$sourcePage:p,children:"No spam. Unsubscribe any time."}),(0,$r.jsx)(Hf.Message,{id:`${t}-creator-message`,role:"error"===s?"alert":"status",$status:s,children:u})]}),i&&(0,$r.jsxs)(Hf.VisualPanel,{"aria-hidden":"true",$sourcePage:p,children:[(0,$r.jsx)(Hf.VisualGlow,{}),(0,$r.jsx)(Hf.GuideCover,{src:"/images/creator-updates/guide-cover.png",alt:"",loading:"lazy",$sourcePage:p}),(0,$r.jsx)(Hf.ProductBox,{src:"/images/creator-updates/product-box.png",alt:"",loading:"lazy",$sourcePage:p})]})]})},Yf="https://austindavenport-shop.fourthwall.com/products",Wf=[{id:"clipboardit",title:"ClipboardIt",description:"A smarter clipboard for Premiere Pro.",category:"Premiere Pro",platform:"Premiere Pro",image:"https://imgproxy.fourthwall.com/NSD2usD9hYTysLDRn1nsl2le1Wj4LLGV3f-bqk1H1X0/w:720/sm:1/enc/OTk0NmI0NjQ1Yzli/YTczNN7v8sTooFr_/69APhnk512swjQmE/LU9wZ_gIvt3bh8II/9lan9TDd1fgslTKJ/_rVZKHQCjnTmPrYM/UTZavpQa9yN10avg/fBm3bDJjQOw1jAVI
3363/S4jsp4uU7ius6dKQ/D20X9SLihVh0HP6e/8hBCkYiyyD_uUslv/E8aUFXGNSvdoX8no/KeRqwkLy-Jf2qmDF/OG5FrQ.webp",destinationUrl:"https://clipboard.it.com/",pricingLabel:"Paid",supportModel:"paid",featured:!0,status:"active",sortOrder:10,source:"projects",notes:'Current project page spells this as "Clipboard It"; links/store normalize to the product spelling "ClipboardIt".'},{id:"youtool-io",title:"YouTool.io",description:"Free tools that make YouTube easier.",category:"YouTube Tools",platform:"Web",image:"https://64.media.tumblr.com/377e88f933f314338ba9608900174dc9/7c0180d0d1212074-5a/s1280x1920/a048ccb1bec91251584811a90d7551c9f7b4ceb7.pnj",destinationUrl:"https://www.youtool.io",pricingLabel:"Free",supportModel:"free",featured:!0,status:"active",sortOrder:20,source:"projects"},{id:"link-in-bio-page-maker",title:"Link-In-Bio Page Maker",description:"Build a first-party link page for your creator brand.",category:"Creator Utilities",platform:"Web",image:"/images/warehouse/products/link-in-bio-page-maker-cover.png",destinationUrl:"https://www.youtool.io/tools/link-in-bio-builder",pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:30,source:"extra-links",notes:"Migrated from /extra-links copy action to a direct store destination."},{id:"notion-templates",title:"Notion Templates",description:"Planner templates for content creators.",category:"Templates",platform:"Notion",image:"/images/warehouse/products/notion-templates.png",destinationUrl:"https://www.notion.so/@austindavenport",pricingLabel:"Templates",supportModel:"external",status:"active",sortOrder:40,source:"projects"},{id:"smooth-it",title:"Smooth It",description:"Create and apply custom easing curves to keyframed properties.",category:"Premiere Pro",platform:"Adobe Exchange",image:"https://64.media.tumblr.com/ac6b24eb89f0c1a5968cdeff134b1d87/de37173ea8e82b4a-76/s1280x1920/be943a97ff80dbace88c7692a05f7f3747901641.pnj",destinationUrl:"https://exchange.adobe.com/apps/cc/fc1418c4/smooth-it",pricingLabel:"Free",supportModel:"external",status:"active",sortOrder:50,source:"projects"},{id:"youtube-blueprint",title:"The YouTube Blueprint",description:"A guide to growing a YouTube channel.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/youtube-blueprint.png",destinationUrl:`${Yf}/the-youtube-blueprint-ebook`,pricingLabel:"Paid",supportModel:"paid",status:"active",sortOrder:60,source:"fourthwall"},{id:"thumbnail-pack",title:"Austin's Thumbnail Pack",description:"Editable thumbnail assets for YouTube creators.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/thumbnail-pack.webp",destinationUrl:`${Yf}/austins-thumbnail-pack`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:65,source:"fourthwall"},{id:"youtube-blueprint-desk-mat",title:"The YouTube Blueprint Desk Mat",description:"A desk mat built around the YouTube Blueprint design.",category:"Merch",platform:"Fourthwall",image:"/images/warehouse/products/fourthwall-youtube-blueprint-desk-mat.jpg",destinationUrl:`${Yf}/the-youtube-blueprint-desk-mat`,pricingLabel:"Paid",supportModel:"paid",status:"active",sortOrder:64,source:"fourthwall"},{id:"folder-structure",title:"Premiere Pro Template Save / Folder",description:"A clean project folder structure for video work.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/folder-structure.webp",destinationUrl:`${Yf}/templatefolder`,pricingLabel:"Free",supportModel:"free",status:"archived",sortOrder:66,source:"fourthwall"},{id:"youtube-planner",title:"YouTube Planner",description:"A Notion planner for organizing YouTube content.",category:"Templates",platform:"Notion",image:"https://imgproxy.fourthwall.dev/4d0ffrsHKZtSvppFlQ2h_Ws8viA0DH89YPkAEvGKXW8/w:1920/sm:1/enc/vV8-6LsnclKeL34k/3FtrLE2RyEhtzVaJ/LGF7S2B8Fg5Do54n/Ilt7pf8hSGg6jizK/PMgEjC9kkUxlKX8j/A0hFlMciRc_BMO6_/Dkw1kMBuzB-QQTSL/8wwDpSSnS5YGz3Ut/BuKMinfcBYnJcQfd/qro6mJefBCyb5Y7q/XOcfRCOjxMyVyL8x/dY9Do4zB9j1K9ics/2NRXdwWodLBQpwbc/HMEEzQ.webp",destinationUrl:`${Yf}/youtube-planner-notion-template`,pricingLabel:"Paid",supportModel:"paid",status:"active",sortOrder:67,source:"fourthwall"},{id:"youtube-planner-plus",title:"YouTube Planner Plus",description:"A deeper Notion system for YouTube planning.",category:"Templates",platform:"Notion",image:"/images/warehouse/products/youtube-planner-plus.png",destinationUrl:`${Yf}/youtube-planner-plus-notion-template`,pricingLabel:"Paid",supportModel:"paid",status:"active",sortOrder:68,source:"fourthwall"},{id:"youtool-seo-handbook",title:"YouTool.io SEO Handbook",description:"A free YouTube SEO reference for creators.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/youtool-seo-handbook.png",destinationUrl:`${Yf}/youtool-io-seo-handbook-for-youtube`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:69,source:"fourthwall"},{id:"dmca-safe-streaming-music",title:"DMCA Safe Streaming Music",description:"An 80-hour playlist of copyright-safe streaming music.",category:"Creator Utilities",platform:"Spotify",image:"/images/warehouse/products/spotify-playlist.png",destinationUrl:"https://open.spotify.com/playlist/0YCHie7xPtBwavLn8SbBNb",pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:70,source:"extra-links"},{id:"discord-template",title:"Free Discord Template",description:"A pre-configured Discord server template for content creators.",category:"Templates",platform:"Discord",image:"/images/warehouse/products/discord-template.png",destinationUrl:"https://discord.com/template/CnvsmH38kruM",pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:80,source:"extra-links"},{id:"fortnite-healthbar-template",title:"Fortnite Custom Healthbar",description:"After Effects stream overlay for Fortnite creators.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/fortnite-healthbar.webp",destinationUrl:`${Yf}/fortnite-healthbar-stream-overlay-after-effects`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:90,source:"extra-links"},{id:"apex-banner-template",title:"Apex Legends Healthbar Overlay",description:"After Effects healthbar overlay for Apex streams.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/gumroad-apex-healthbar.jpg",destinationUrl:`${Yf}/apex-legends-healthbar-stream-overlay-after-effects`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:100,source:"extra-links"},{id:"warzone-banner-template",title:"Warzone 2 Healthbar Overlay",description:"After Effects healthbar overlay for Warzone streams.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/gumroad-warzone-healthbar.jpg",destinationUrl:`${Yf}/warzone-2-healthbar-stream-overlay-after-effects`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:110,source:"extra-links"},{id:"free-transition-download",title:"Stinger Transition",description:"After Effects stinger transition for streaming.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/gumroad-stinger-transition.jpg",destinationUrl:`${Yf}/stinger-transition-for-streaming-after-effects`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:120,source:"extra-links"}
3363,{id:"arc-raiders-healthbar-overlay",title:"Arc Raiders Healthbar Overlay",description:"Custom stream overlay for Arc Raiders.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/arc-raiders-healthbar.jpg",destinationUrl:`${Yf}/arc-raiders-custom-healthbar-overlay`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:130,source:"fourthwall"},{id:"warzone-stream-overlay-davinci",title:"Warzone 2 Stream Overlay",description:"DaVinci Resolve stream overlay for Warzone.",category:"Creator Utilities",platform:"Fourthwall",image:"/images/warehouse/products/gumroad-warzone-davinci.jpg",destinationUrl:`${Yf}/warzone-2-stream-overlay-davinci-resolve`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:140,source:"fourthwall"},{id:"text-animation-presets",title:"Text Animation Presets #1",description:"Premiere Pro text animation preset pack.",category:"Premiere Pro",platform:"Gumroad",image:"/images/warehouse/products/gumroad-text-animation-presets.jpg",destinationUrl:`${Yf}/premiere-pro-text-animation-presets-pack-1`,pricingLabel:"Paid",supportModel:"paid",status:"active",sortOrder:155,source:"fourthwall"},{id:"ultimate-stream-graphics-bundle",title:"Ultimate Stream Graphics Bundle",description:"A Gumroad bundle of stream graphics.",category:"Creator Utilities",platform:"Gumroad",image:"/images/warehouse/products/gumroad-stream-graphics-bundle.png",destinationUrl:"https://austindavenport.gumroad.com/l/Streambundle",pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:156,source:"gumroad"},{id:"giftbox",title:"GIFTBOX",description:"AI-generated instrumental background music.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/giftbox-drop-001.avif",destinationUrl:`${Yf}/giftbox`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:150,source:"fourthwall"},{id:"giftbox-2",title:"GIFTBOX 2",description:"A second free drop of instrumental background music.",category:"Digital Products",platform:"Fourthwall",image:"/images/warehouse/products/fourthwall-giftbox-2.jpg",destinationUrl:`${Yf}/giftbox-2`,pricingLabel:"Free",supportModel:"free",status:"active",sortOrder:151,source:"fourthwall"}],Kf=Wf.filter((e=>"active"===e.status||"coming-soon"===e.status)).sort(((e,t)=>e.sortOrder-t.sortOrder)),qf=e=>Wf.find((t=>t.id===e)),Qf=[{id:"automatic-youtube-theater-mode",title:"Automatic YouTube Theater Mode",description:"Switch YouTube watch pages into theater mode.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/automatic-youtube-theater-mode.png",url:"https://chromewebstore.google.com/detail/automatic-youtube-theater-mode/moamnkgdnhjdanhlnpbkefphielbjmmm"},{id:"youtube-studio-analytics-export",title:"YouTube Studio Analytics Export",description:"Export Studio analytics to CSV.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/youtube-studio-analytics-export.png",url:"https://chromewebstore.google.com/detail/youtube-studio-analytics-export/nedbjfncggljjdhggdleklpeppoloiaa"},{id:"adjust-youtube-shorts-speed",title:"Adjust YouTube Shorts Speed",description:"Add speed controls to YouTube Shorts.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/adjust-youtube-shorts-speed.png",url:"https://chromewebstore.google.com/detail/adjust-youtube-shorts-speed/ehcfphaakmaaamenfkajelpmhmeobhmo"},{id:"youtool-io-extension",title:"YouTool.io",description:"Creator tools inside YouTube.",platform:"Chrome Extension",image:"https://64.media.tumblr.com/377e88f933f314338ba9608900174dc9/7c0180d0d1212074-5a/s1280x1920/a048ccb1bec91251584811a90d7551c9f7b4ceb7.pnj",url:"https://chromewebstore.google.com/detail/youtoolio/goeiahdjdlokjnmebkdpohjgedfopnec"},{id:"copy-youtube-video-description",title:"Copy YouTube Video Description",description:"Copy a YouTube description in one click.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/copy-youtube-video-description.png",url:"https://chromewebstore.google.com/detail/copy-youtube-video-description/jbgdhdakbjdkgkhpbdheepngjidoaapb"},{id:"auto-scroll-youtube-shorts",title:"Auto-Scroll YouTube Shorts",description:"Advance Shorts automatically when playback ends.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/auto-scroll-youtube-shorts.png",url:"https://chromewebstore.google.com/detail/auto-scroll-youtube-shorts/dhekonpikmeigimepmfajlmajjfhgnea"},{id:"show-youtube-shorts-views",title:"Show YouTube Shorts Views",description:"Show public view counts on Shorts.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/show-youtube-shorts-views.png",url:"https://chromewebstore.google.com/detail/show-youtube-shorts-views/npohkhfoalnfcpgkoahiepnjmobmlhjh"},{id:"loop-youtube-video",title:"Loop YouTube Video",description:"Add a loop toggle to YouTube videos.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/loop-youtube-video.png",url:"https://chromewebstore.google.com/detail/loop-youtube-video/olknodjagiecmbdpfclgcphnoegnklhd"},{id:"copy-youtube-video-tags",title:"Copy YouTube Video Tags",description:"Copy tags from YouTube watch pages.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/copy-youtube-video-tags.png",url:"https://chromewebstore.google.com/detail/copy-youtube-video-tags/lcbkonnfbllpippdjlldbcemdgaeogof"},{id:"save-youtube-video-screenshot",title:"Save YouTube Video Screenshot",description:"Save the current frame from a video.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/save-youtube-video-screenshot.png",url:"https://chromewebstore.google.com/detail/save-youtube-video-screenshot/ckdeifomimomcoaabhcgjgieegmaagja"},{id:"copy-youtube-video-transcript",title:"Copy YouTube Video Transcript",description:"Copy YouTube transcripts quickly.",platform:"Chrome Extension",image:"/images/warehouse/google-extensions/copy-youtube-video-transcript.png",url:"https://chromewebstore.google.com/detail/copy-youtube-video-transcript/lhpndclpdohdjmoecfjkdjcfiphojgdf"}],Xf=kr.div`
3364  width: 100%;
3365  max-width: 1440px;
3366  margin: 0 auto;
3367  padding: 3rem clamp(1rem, 4vw, 3.5rem) 4rem;
3368
3369  @media (max-width: 768px) {
3370    padding: 1rem 0.85rem 2.75rem;
3371  }
3372`,Jf=kr.button`
3373  appearance: none;
3374  background: transparent;
3375  border: 0;
3376  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3377  display: inline-flex;
3378  align-items: center;
3379  gap: 0.4rem;
3380  font-family: inherit;
3381  font-size: 0.9rem;
3382  font-weight: 700;
3383  margin: 0 0 1.2rem;
3384  padding: 0;
3385  transition: color 0.2s ease, transform 0.2s ease;
3386
3387  i {
3388    font-size: 1.1rem;
3389    line-height: 1;
3390  }
3391
3392  &:hover {
3393    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3394    transform: translateX(-2px);
3395  }
3396
3397  @media (max-width: 680px) {
3398    font-size: 0.82rem;
3399    margin-bottom: 0.85rem;
3400  }
3401`,Zf=kr.header`
3402  display: flex;
3403  align-items: start;
3404  justify-content: space-between;
3405  gap: 1rem;
3406  margin-bottom: 1.4rem;
3407
3408  @media (max-width: 560px) {
3409    align-items: center;
3410    margin-bottom: 1rem;
3411  }
3412`,em=kr.div`
3413  display: grid;
3414  gap: 0.25rem;
3415`,tm=(kr.div`
3416  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3417  font-size: 0.78rem;
3418  font-weight: 700;
3419  text-transform: uppercase;
3420  letter-spacing: 0;
3421`,kr.h1`
3422  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3423  font-size: clamp(1.55rem, 3vw, 2rem);
3424  line-height: 1.1;
3425  margin: 0;
3426
3427  @media (max-width: 680px) {
3428    font-size: 1.45rem;
3429  }
3430`),nm=(kr.p`
3431  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3432  font-size: 0.9rem;
3433  line-height: 1.4;
3434  max-width: 720px;
3435  margin: 0;
3436`,kr.div`
3437  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3438  font-size: clamp(0.95rem, 2vw, 1.25rem);
3439  line-height: 1.2;
3440  white-space: nowrap;
3441
3442  @media (max-width: 680px) {
3443    background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3444    border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3445    border-radius: 999px;
3446    font-size: 0.78rem;
3447    font-weight: 800;
3448    padding: 0.45rem 0.65rem;
3449  }
3450`),rm=kr.section`
3451  display: grid;
3452  grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
3453  gap: 0.8rem;
3454  align-items: end;
3455  margin-bottom: 2rem;
3456
3457  @media (max-width: 680px) {
3458    grid-template-columns: minmax(0, 1fr) minmax(112px, 36%);
3459    gap: 0.65rem;
3460    margin-bottom: 1.35rem;
3461  }
3462
3463  @media (max-width: 380px) {
3464    grid-template-columns: 1fr;
3465  }
3466`,om=kr.div`
3467  display: grid;
3468  gap: 0.4rem;
3469`,im=kr.div`
3470  position: relative;
3471  display: grid;
3472  gap: 0.4rem;
3473`,am=kr.label`
3474  color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
3475  font-size: 0.85rem;
3476  font-weight: 600;
3477
3478  @media (max-width: 680px) {
3479    font-size: 0.72rem;
3480  }
3481`,lm=kr.input`
3482  width: 100%;
3483  background: rgba(250, 252, 255, 0.04);
3484  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3485  border-radius: 12px;
3486  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3487  font-family: inherit;
3488  font-size: 0.95rem;
3489  padding: 0.85rem 1rem;
3490
3491  @media (max-width: 680px) {
3492    min-height: 44px;
3493    border-radius: 8px;
3494    font-size: 0.86rem;
3495    padding: 0.68rem 0.75rem;
3496  }
3497`,sm=kr.button`
3498  width: 100%;
3499  background:
3500    linear-gradient(135deg, ${e=>{let{theme:t}=e;return t.colors.blue2}}, ${e=>{let{theme:t}=e;return t.colors.blue3}});
3501  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3502  border-radius: 12px;
3503  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3504  cursor: pointer;
3505  display: flex;
3506  align-items: center;
3507  justify-content: space-between;
3508  gap: 0.65rem;
3509  font-family: inherit;
3510  font-size: 0.92rem;
3511  font-weight: 700;
3512  min-height: 48px;
3513  padding: 0.85rem 0.85rem 0.85rem 1rem;
3514  text-align: left;
3515  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
3516
3517  span {
3518    min-width: 0;
3519    overflow: hidden;
3520    text-overflow: ellipsis;
3521    white-space: nowrap;
3522  }
3523
3524  i {
3525    color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
3526    flex: 0 0 auto;
3527    font-size: 1.25rem;
3528    line-height: 1;
3529  }
3530
3531  &:hover {
3532    border-color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
3533  }
3534
3535  &:focus-visible {
3536    border-color: ${e=>{let{theme:t}=e;return t.colors.blue8}};
3537    box-shadow: 0 0 0 3px rgba(91, 141, 239, 0.18);
3538    outline: none;
3539  }
3540
3541  @media (max-width: 680px) {
3542    min-height: 44px;
3543    border-radius: 8px;
3544    font-size: 0.82rem;
3545    padding: 0.68rem 0.55rem 0.68rem 0.75rem;
3546
3547    i {
3548      font-size: 1.05rem;
3549    }
3550  }
3551`,cm=kr.div`
3552  position: absolute;
3553  top: calc(100% + 0.4rem);
3554  right: 0;
3555  z-index: 20;
3556  width: min(260px, 100vw - 2rem);
3557  max-height: 18rem;
3558  overflow-y: auto;
3559  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3560  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3561  border-radius: 14px;
3562  box-shadow: 0 22px 54px rgba(0, 0, 0, 0.36);
3563  padding: 0.35rem;
3564
3565  @media (max-width: 680px) {
3566    border-radius: 10px;
3567    max-height: 16rem;
3568    width: min(230px, 100vw - 1.7rem);
3569  }
3570
3571  @media (max-width: 380px) {
3572    left: 0;
3573    right: auto;
3574    width: 100%;
3575  }
3576`,um=kr.button`
3577  width: 100%;
3578  background: ${e=>{let{$active:t,theme:n}=e;return t?n.colors.blue3:"transparent"}};
3579  border: 0;
3580  border-radius: 10px;
3581  color: ${e=>{let{$active:t,theme:n}=e;return t?n.colors.blue9:n.colors.blue11}};
3582  cursor: pointer;
3583  display: flex;
3584  align-items: center;
3585  justify-content: space-between;
3586  gap: 0.65rem;
3587  font-family: inherit;
3588  font-size: 0.88rem;
3589  font-weight: 700;
3590  padding: 0.7rem 0.75rem;
3591  text-align: left;
3592  transition: background 0.16s ease, color 0.16s ease;
3593
3594  span {
3595    min-width: 0;
3596    overflow-wrap: anywhere;
3597  }
3598
3599  i {
3600    color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
3601    flex: 0 0 auto;
3602    font-size: 1rem;
3603    line-height: 1;
3604  }
3605
3606  &:hover,
3607  &:focus-visible {
3608    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
3609    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3610    outline: none;
3611  }
3612
3613  @media (max-width: 680px) {
3614    border-radius: 8px;
3615    font-size: 0.78rem;
3616    padding: 0.62rem 0.6rem;
3617  }
3618`,dm=kr.div`
3619  display: grid;
3620  grid-template-columns: repeat(4, minmax(0, 1fr));
3621  column-gap: clamp(1.4rem, 3vw, 2.4rem);
3622  row-gap: 2.4rem;
3623
3624  @media (max-width: 1180px) {
3625    grid-template-columns: repeat(3, minmax(0, 1fr));
3626  }
3627
3628  @media (max-width: 820px) {
3629    grid-template-columns: repeat(2, minmax(0, 1fr));
3630    gap: 1.6rem 1rem;
3631  }
3632
3633  @media (max-width: 680px) {
3634    gap: 1.25rem 0.7rem;
3635  }
3636`,pm=kr.div`
3637  margin: 0 0 2.9rem;
3638
3639  @media (max-width: 680px) {
3640    margin-bottom: 2rem;
3641  }
3642`,fm=(kr.div`
3643  display: grid;
3644  gap: 2.1rem;
3645  margin: 0 0 2.7rem;
3646`,kr.div`
3647  margin: 0 0 2.9rem;
3648
3649  @media (max-width: 680px) {
3650    margin-bottom: 2rem;
3651  }
3652`),mm=kr.section`
3653  min-width: 0;
3654`,hm=kr.div`
3655  display: flex;
3656  align-items: center;
3657  justify-content: space-between;
3658  gap: 1rem;
3659  margin: 0 0 1rem;
3660
3661  @media (max-width: 680px) {
3662    margin-bottom: 0.75rem;
3663  }
3664`,gm=kr.h2`
3665  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3666  font-size: clamp(1.05rem, 2vw, 1.3rem);
3667  line-height: 1.1;
3668  margin: 0;
3669
3670  @media (max-width: 680px) {
3671    font-size: 1rem;
3672  }
3673`,bm=kr.div`
3674  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3675  font-size: 0.9rem;
3676  font-weight: 700;
3677`,vm=kr.div`
3678  display: grid;
3679  grid-auto-flow: column;
3680  grid-auto-columns: minmax(210px, 240px);
3681  gap: 1rem;
3682  margin-inline: calc(clamp(1rem, 4vw, 3.5rem) * -1);
3683  overflow-x: auto;
3684  overscroll-behavior-x: contain;
3685  padding: 0 clamp(1rem, 4vw, 3.5rem) 0.4rem;
3686  scroll-padding-inline: clamp(1rem, 4vw, 3.5rem);
3687  scroll-snap-type: x mandatory;
3688  scrollbar-width: thin;
3689
3690  @media (max-width: 768px) {
3691    grid-auto-columns: minmax(138px, 42vw);
3692    gap: 0.75rem;
3693    margin-inline: -0.85rem;
3694    padding-inline: 0.85rem;
3695    scroll-padding-inline: 0.85rem;
3696  }
3697
3698  @media (max-width: 380px) {
3699    grid-auto-columns: minmax(132px, 48vw);
3700  }
3701`,ym=kr.article`
3702  min-width: 0;
3703  color: inherit;
3704  display: grid;
3705  gap: 0.75rem;
3706  scroll-snap-align: start;
3707  text-decoration: none;
3708  transition: transform 0.2s ease;
3709
3710  &[href]:hover {
3711    transform: translateY(-2px);
3712  }
3713
3714  @media (max-width: 680px) {
3715    gap: 0.5rem;
3716  }
3717`,xm=kr.div`
3718  width: 100%;
3719  aspect-ratio: 1 / 1;
3720  border-radius: 48px;
3721  overflow: hidden;
3722  background: linear-gradient(135deg, rgba(250, 252, 255, 0.06), rgba(250, 252, 255, 0.02));
3723  background-color: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3724  position: relative;
3725  isolation: isolate;
3726  box-shadow: inset 0 0 0 1px ${e=>{let{theme:t}=e;return t.colors.blue3}};
3727  transition: box-shadow 0.2s ease, filter 0.2s ease;
3728
3729  &::after {
3730    content: '';
3731    position: absolute;
3732    inset: 0;
3733    border-radius: inherit;
3734    box-shadow: inset 0 0 0 1px ${e=>{let{theme:t}=e;return t.colors.blue3}};
3735    pointer-events: none;
3736    z-index: 2;
3737  }
3738
3739  ${ym}[href]:hover & {
3740    box-shadow:
3741      inset 0 0 0 1px ${e=>{let{theme:t}=e;return t.colors.blue5}},
3742      0 18px 36px rgba(0, 0, 0, 0.18);
3743    filter: brightness(1.05);
3744  }
3745`,wm=kr.img`
3746  display: block;
3747  width: 100%;
3748  height: 100%;
3749  border-radius: inherit;
3750  object-fit: cover;
3751  object-position: center;
3752`,Em=kr.div`
3753  display: grid;
3754  gap: 0.2rem;
3755  padding: 0 0.1rem;
3756`,_m=kr.h3`
3757  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3758  display: -webkit-box;
3759  font-size: 0.98rem;
3760  line-height: 1.15;
3761  margin: 0;
3762  overflow: hidden;
3763  -webkit-box-orient: vertical;
3764  -webkit-line-clamp: 2;
3765
3766  @media (max-width: 680px) {
3767    font-size: 0.78rem;
3768    line-height: 1.1;
3769  }
3770`,km=kr.p`
3771  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3772  font-size: 0.78rem;
3773  font-weight: 700;
3774  line-height: 1.25;
3775  margin: 0;
3776
3777  @media (max-width: 680px) {
3778    font-size: 0.66rem;
3779  }
3780`,Tm=kr.a`
3781  min-width: 0;
3782  color: inherit;
3783  display: grid;
3784  gap: 0.95rem;
3785  text-decoration: none;
3786  transition: transform 0.2s ease;
3787
3788  &:hover {
3789    transform: translateY(-2px);
3790  }
3791
3792  @media (max-width: 680px) {
3793    gap: 0.55rem;
3794  }
3795`,Cm=kr.div`
3796  width: 100%;
3797  aspect-ratio: 1 / 1;
3798  border-radius: 14px;
3799  overflow: hidden;
3800  background:
3801    linear-gradient(135deg, rgba(250, 252, 255, 0.06), rgba(250, 252, 255, 0.02)),
3802    ${e=>{let{$image:t,theme:n}=e;return t?`url(${t})`:n.colors.blue3}};
3803  background-size: ${e=>{let{$image:t}=e;return t?"cover":"auto"}};
3804  background-position: center;
3805  display: flex;
3806  align-items: center;
3807  justify-content: center;
3808  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3809  position: relative;
3810  box-shadow: inset 0 0 0 1px ${e=>{let{theme:t}=e;return t.colors.blue3}};
3811  transition: box-shadow 0.2s ease, filter 0.2s ease;
3812
3813  ${Tm}:hover & {
3814    box-shadow:
3815      inset 0 0 0 1px ${e=>{let{theme:t}=e;return t.colors.blue5}},
3816      0 18px 36px rgba(0, 0, 0, 0.18);
3817    filter: brightness(1.05);
3818  }
3819
3820  i {
3821    font-size: 42px;
3822  }
3823
3824  @media (max-width: 680px) {
3825    border-radius: 8px;
3826  }
3827`,Sm=kr.span`
3828  position: absolute;
3829  top: 1rem;
3830  right: 1rem;
3831  width: 2.15rem;
3832  height: 2.15rem;
3833  border-radius: 0.55rem;
3834  background: rgba(15, 17, 19, 0.9);
3835  border: 1px solid rgba(250, 252, 255, 0.08);
3836  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3837  display: inline-flex;
3838  align-items: center;
3839  justify-content: center;
3840  line-height: 1;
3841
3842  i {
3843    font-size: 1.15rem;
3844  }
3845
3846  @media (max-width: 680px) {
3847    top: 0.5rem;
3848    right: 0.5rem;
3849    width: 1.65rem;
3850    height: 1.65rem;
3851    border-radius: 0.45rem;
3852
3853    i {
3854      font-size: 0.9rem;
3855    }
3856  }
3857`,Pm=kr.div`
3858  min-width: 0;
3859  display: grid;
3860  gap: 0.22rem;
3861  padding: 0 0.15rem;
3862
3863  @media (max-width: 680px) {
3864    gap: 0.15rem;
3865    padding: 0;
3866  }
3867`,Am=(kr.div`
3868  display: flex;
3869  flex-wrap: wrap;
3870  gap: 0.35rem;
3871
3872  span {
3873    color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3874    font-size: 0.68rem;
3875    font-weight: 700;
3876    text-transform: uppercase;
3877    letter-spacing: 0;
3878  }
3879`,kr.h2`
3880  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3881  font-size: clamp(1.05rem, 2vw, 1.25rem);
3882  line-height: 1.12;
3883  margin: 0;
3884  display: -webkit-box;
3885  -webkit-line-clamp: 2;
3886  -webkit-box-orient: vertical;
3887  overflow: hidden;
3888
3889  @media (max-width: 680px) {
3890    font-size: 0.92rem;
3891    line-height: 1.08;
3892  }
3893`),Rm=kr.p`
3894  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3895  font-size: 0.82rem;
3896  font-weight: 600;
3897  line-height: 1.25;
3898  margin: 0;
3899
3900  @media (max-width: 680px) {
3901    font-size: 0.68rem;
3902  }
3903`,Im=kr.div`
3904  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
3905  font-size: 0.95rem;
3906  font-weight: 800;
3907  line-height: 1.25;
3908  margin-top: 0.25rem;
3909
3910  @media (max-width: 680px) {
3911    font-size: 0.78rem;
3912    margin-top: 0.1rem;
3913  }
3914`,Lm=kr.div`
3915  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3916  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3917  border-radius: 8px;
3918  color: ${e=>{let{theme:t}=e;return t.colors.blue11}};
3919  padding: 2rem;
3920  text-align: center;
3921`,Om=kr.div`
3922  width: 100%;
3923  margin: 3rem 0 0;
3924
3925  @media (max-width: 680px) {
3926    margin-top: 2.25rem;
3927  }
3928`,jm="All",zm=e=>{let{title:t,items:n}=e;return(0,$r.jsxs)(mm,{"aria-labelledby":`${t.toLowerCase().replace(/[^a-z0-9]+/g,"-")}-title`,children:[(0,$r.jsxs)(hm,{children:[(0,$r.jsx)(gm,{id:`${t.toLowerCase().replace(/[^a-z0-9]+/g,"-")}-title`,children:t}),(0,$r.jsx)(bm,{children:n.length})]}),(0,$r.jsx)(vm,{children:n.map((e=>(0,$r.jsxs)(ym,{as:e.url?"a":"article",href:e.url,target:e.url?"_blank":void 0,rel:e.url?"noopener noreferrer":void 0,onClick:()=>e.url&&qc("store_shelf_item_clicked",{item_id:e.id,platform:e.platform,source_page:"store"}),"aria-label":e.url?`${e.title}: open ${e.platform}`:void 0,children:[(0,$r.jsx)(xm,{$image:e.image,children:(0,$r.jsx)(wm,{src:e.image,alt:"","aria-hidden":"true"})}),(0,$r.jsxs)(Em,{children:[(0,$r.jsx)(_m,{children:e.title}),(0,$r.jsx)(km,{children:e.platform})]})]},e.id)))})]})},Nm=e=>{let{tools:t,onToolClick:n}=e;return(0,$r.jsx)(dm,{children:t.map((e=>{return(0,$r.jsxs)(Tm,{href:e.destinationUrl,target:"_blank",rel:"noopener noreferrer",onClick:()=>n(e.id,e.category,e.platform),"aria-label":`${e.title}: ${e.description||e.category}`,children:[(0,$r.jsxs)(Cm,{$image:e.image,children:[(0,$r.jsx)(Sm,{"aria-label":e.category,children:(0,$r.jsx)("i",{className:(r=e.platform,o=e.category,"YouTube"===r||"YouTube Tools"===o?"bx bxl-youtube":"Spotify"===r?"bx bxl-spotify":"Discord"===r?"bx bxl-discord-alt":"Notion"===r||"Templates"===o?"bx bx-layout":"Gumroad"===r?"bx bx-store":"Fourthwall"===r?"bx bx-package":"Web"===r||"Creator Utilities"===o?"bx bx-wrench":"Digital Products"===o?"bx bx-book-open":"Premiere Pro"===o||"Premiere Pro"===r||"Adobe Exchange"===r?"bx bx-movie-play":"bx bx-cube"),"aria-hidden":"true"})}),!e.image&&(0,$r.jsx)("i",{className:"bx bx-cube","aria-hidden":"true"})]}),(0,$r.jsxs)(Pm,{children:[(0,$r.jsx)(Am,{children:e.title}),(0,$r.jsx)(Rm,{children:e.category}),(0,$r.jsx)(Im,{children:"coming-soon"===e.status?"Coming Soon":(t=e.pricingLabel,t?"Adobe Exchange"===t?"Plugin":"Templates"===t?"Template":t:"Active")}
3928)]})]},e.id);var t,r,o}))})},Mm=()=>{const[e,t]=(0,o.useState)(jm),[n,r]=(0,o.useState)(""),[i,a]=(0,o.useState)(!1),l=(0,o.useRef)(null),s=ne();Co({title:"The Warehouse | Austin Davenport",description:"Browse Austin Davenport tools, Premiere Pro plugins, YouTube resources, templates, and creator utilities from one compact catalog.",path:"/store"});const c=(0,o.useMemo)((()=>[jm,...Array.from(new Set(Kf.map((e=>e.category)))).sort()]),[]),u=(0,o.useMemo)((()=>{const t=n.trim().toLowerCase();return Kf.filter((n=>{const r=e===jm||n.category===e,o=!t||[n.title,n.description,n.category,n.platform,n.pricingLabel].filter(Boolean).some((e=>e.toLowerCase().includes(t)));return r&&o}))}),[e,n]),d=u.slice(0,8),p=u.slice(8,16),f=u.slice(16);(0,o.useEffect)((()=>{if(!i)return;const e=e=>{var t;e.target instanceof Node&&(null===(t=l.current)||void 0===t||!t.contains(e.target))&&a(!1)},t=e=>{"Escape"===e.key&&a(!1)};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}}),[i]);const m=(e,t,n)=>{qc("store_tool_clicked",{tool_id:e,category:t,platform:n||null,destination_type:"external",source_page:"store"})};return(0,$r.jsxs)(Xf,{children:[(0,$r.jsxs)(Jf,{type:"button",onClick:()=>{window.history.length>1?s(-1):s("/links")},children:[(0,$r.jsx)("i",{className:"bx bx-arrow-back","aria-hidden":"true"}),"Back"]}),(0,$r.jsxs)(Zf,{children:[(0,$r.jsx)(em,{children:(0,$r.jsx)(tm,{children:"The Warehouse"})}),(0,$r.jsxs)(nm,{children:[u.length," ",1===u.length?"product":"products"]})]}),(0,$r.jsxs)(rm,{"aria-label":"Store controls",children:[(0,$r.jsxs)(om,{children:[(0,$r.jsx)(am,{htmlFor:"store-search",children:"Search"}),(0,$r.jsx)(lm,{id:"store-search",type:"search",value:n,onChange:e=>{return t=e.target.value,r(t),void(1!==t.trim().length&&t.trim().length%5!==0||qc("store_search_used",{query_length:t.trim().length,source_page:"store"}));var t},placeholder:"Search tools"})]}),(0,$r.jsxs)(im,{ref:l,children:[(0,$r.jsx)(am,{htmlFor:"store-category",children:"Filter"}),(0,$r.jsxs)(sm,{id:"store-category",type:"button","aria-haspopup":"listbox","aria-expanded":i,"aria-controls":"store-category-menu",onClick:()=>a((e=>!e)),children:[(0,$r.jsx)("span",{children:e}),(0,$r.jsx)("i",{className:i?"bx bx-chevron-up":"bx bx-chevron-down","aria-hidden":"true"})]}),i&&(0,$r.jsx)(cm,{id:"store-category-menu",role:"listbox","aria-label":"Filter products",children:c.map((n=>(0,$r.jsxs)(um,{type:"button",role:"option","aria-selected":e===n,$active:e===n,onClick:()=>(e=>{t(e),a(!1),qc("store_filter_used",{category:e,source_page:"store"})})(n),children:[(0,$r.jsx)("span",{children:n}),e===n&&(0,$r.jsx)("i",{className:"bx bx-check","aria-hidden":"true"})]},n)))})]})]}),(0,$r.jsxs)(hm,{children:[(0,$r.jsx)(gm,{children:"All Products"}),(0,$r.jsx)(bm,{children:u.length})]}),u.length?(0,$r.jsxs)($r.Fragment,{children:[(0,$r.jsx)(pm,{children:(0,$r.jsx)(Nm,{tools:d,onToolClick:m})}),(0,$r.jsx)(fm,{children:(0,$r.jsx)(zm,{title:"Google Extensions",items:Qf})}),p.length>0&&(0,$r.jsx)(pm,{children:(0,$r.jsx)(Nm,{tools:p,onToolClick:m})}),f.length>0&&(0,$r.jsx)(Nm,{tools:f,onToolClick:m})]}):(0,$r.jsx)(Lm,{children:"No tools match that search."}),(0,$r.jsx)(Om,{children:(0,$r.jsx)(Gf,{source:"source_store",showVisual:!0})})]})},Dm="Latest YouTube Video",Um="Watch my newest tutorial, workflow, or creator tip.",Fm="https://www.youtube.com/watch?v=3a8-PfYVLgo",$m="https://img.youtube.com/vi/3a8-PfYVLgo/maxresdefault.jpg",Vm=qf("clipboardit"),Bm=qf("youtool-io"),Hm=[{id:"clipboardit",title:"Clipboard It",description:"",url:(null===Vm||void 0===Vm?void 0:Vm.destinationUrl)||"https://clipboard.it.com/",image:null===Vm||void 0===Vm?void 0:Vm.image},{id:"youtool-io",title:(null===Bm||void 0===Bm?void 0:Bm.title)||"YouTool.io",description:"",url:(null===Bm||void 0===Bm?void 0:Bm.destinationUrl)||"https://www.youtool.io",image:null===Bm||void 0===Bm?void 0:Bm.image}],Gm=[{id:"store",title:"Browse All Tools",description:"Chrome extensions, Premiere Pro plugins, templates, and more.",url:"/store",icon:"bx-grid-alt",external:!1},{id:"creator-updates",title:"Free Client Project Folder",description:"Get the project folder I use for client work, plus a guide on how to use it.",url:"#creator-updates",icon:"bx-envelope",external:!1},{id:"support-development",title:"Support Development",description:"Support future tools.",url:"https://buymeacoffee.com/austindavenport",icon:"bx-coffee",external:!0}],Ym=[{id:"youtube",title:"YouTube",url:"https://www.youtube.com/@AustinDavenport",icon:"bxl-youtube",external:!0},{id:"discord",title:"Discord",url:"https://discord.com/invite/vuKtEXJ",icon:"bxl-discord-alt",external:!0},{id:"contact",title:"Contact",url:"/contact",icon:"bx-envelope",external:!1}],Wm=Sr`
3929  from {
3930    opacity: 0;
3931    transform: translateY(30px);
3932  }
3933  to {
3934    opacity: 1;
3935    transform: translateY(0);
3936  }
3937`,Km=Sr`
3938  0% { transform: translateX(-100%); }
3939  100% { transform: translateX(100%); }
3940`,qm=Sr`
3941  0%, 100% { transform: scale(1); opacity: 1; }
3942  50% { transform: scale(1.05); opacity: 0.8; }
3943`,Qm=kr.div`
3944  min-height: 100vh;
3945  background: ${e=>{let{theme:t}=e;return t.colors.blue1||"#f8f9fa"}};
3946  position: relative;
3947  overflow: clip;
3948  padding: 2rem 1rem;
3949  display: flex;
3950  align-items: flex-start;
3951  justify-content: center;
3952
3953  @media (max-width: 768px) {
3954    padding: 0.75rem 0.75rem 2rem;
3955    align-items: flex-start;
3956  }
3957`,Xm=kr.div`
3958  width: 100%;
3959  max-width: 540px;
3960  z-index: 1;
3961  animation: ${Wm} 0.8s ease-out;
3962
3963  @media (max-width: 480px) {
3964    max-width: 100%;
3965  }
3966`,Jm=kr.div`
3967  background-color: ${e=>{let{theme:t}=e;return t.colors.blue2}};
3968  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
3969  border-radius: 24px;
3970  padding: 1.5rem 2rem;
3971  margin-bottom: 1.25rem;
3972  text-align: center;
3973  overflow: hidden;
3974  position: relative;
3975  isolation: isolate;
3976  box-shadow:
3977    0 8px 32px rgba(0, 0, 0, 0.08),
3978    0 2px 8px rgba(0, 0, 0, 0.04);
3979  backdrop-filter: blur(20px);
3980  transition: all 0.3s ease;
3981
3982  &::after {
3983    content: '';
3984    position: absolute;
3985    inset: 0;
3986    background:
3987      radial-gradient(circle at center, rgba(15, 17, 19, 0.12), rgba(15, 17, 19, 0.84) 72%),
3988      linear-gradient(180deg, rgba(15, 17, 19, 0.42), rgba(15, 17, 19, 0.72));
3989    pointer-events: none;
3990    z-index: -1;
3991  }
3992
3993  > *:not(video) {
3994    position: relative;
3995    z-index: 1;
3996  }
3997
3998  &:hover {
3999    border-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
4000    transform: translateY(-2px);
4001    box-shadow:
4002      0 12px 40px rgba(0, 0, 0, 0.12),
4003      0 4px 12px rgba(0, 0, 0, 0.08);
4004  }
4005
4006  @media (max-width: 480px) {
4007    padding: 1.25rem 1.25rem;
4008    border-radius: 18px;
4009    margin-bottom: 1rem;
4010  }
4011`,Zm=kr.video`
4012  position: absolute;
4013  inset: 0;
4014  width: 100%;
4015  height: 100%;
4016  object-fit: cover;
4017  opacity: 0.4;
4018  pointer-events: none;
4019  z-index: -2;
4020`,eh=kr.div`
4021  position: relative;
4022  display: inline-block;
4023  margin-bottom: 0.875rem;
4024`,th=kr.div`
4025  width: 80px;
4026  height: 80px;
4027  border-radius: 50%;
4028  overflow: hidden;
4029  border: 3px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
4030  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
4031  position: relative;
4032
4033  img {
4034    width: 100%;
4035    height: 100%;
4036    object-fit: cover;
4037  }
4038
4039  &::before {
4040    content: '';
4041    position: absolute;
4042    top: -3px;
4043    left: -3px;
4044    right: -3px;
4045    bottom: -3px;
4046    border-radius: 50%;
4047    background: linear-gradient(45deg, ${e=>{let{theme:t}=e;return t.colors.blue6}}, ${e=>{let{theme:t}=e;return t.colors.blue8}});
4048    z-index: -1;
4049    animation: ${Km} 3s ease-in-out infinite;
4050  }
4051
4052  @media (max-width: 480px) {
4053    width: 68px;
4054    height: 68px;
4055  }
4056`,nh=kr.div`
4057  position: absolute;
4058  bottom: 8px;
4059  right: 8px;
4060  width: 20px;
4061  height: 20px;
4062  background: #00ff88;
4063  border-radius: 50%;
4064  border: 3px solid ${e=>{let{theme:t}=e;return t.colors.blue2}};
4065  animation: ${qm} 3s ease-in-out infinite;
4066`,rh=kr.div`
4067  margin-bottom: 0;
4068`,oh=kr.h1`
4069  font-size: 1.4rem;
4070  font-weight: 700;
4071  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4072  margin-bottom: 0.35rem;
4073
4074  @media (max-width: 480px) {
4075    font-size: 1.2rem;
4076  }
4077`,ih=kr.div`
4078  display: inline-block;
4079  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
4080  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4081  padding: 0.35rem 0.875rem;
4082  border-radius: 20px;
4083  font-size: 0.8rem;
4084  font-weight: 600;
4085  margin-bottom: 0;
4086  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
4087`,ah=kr.div`
4088  display: flex;
4089  flex-direction: column;
4090  gap: 0.75rem;
4091  margin-bottom: 1.25rem;
4092
4093  @media (max-width: 480px) {
4094    gap: 0.625rem;
4095  }
4096`,lh=kr.div`
4097  padding: 1rem 1.25rem;
4098  display: flex;
4099  align-items: center;
4100  gap: 0.875rem;
4101  position: relative;
4102  z-index: 1;
4103
4104  @media (max-width: 480px) {
4105    padding: 0.875rem 1rem;
4106    gap: 0.75rem;
4107  }
4108`,sh=kr.div`
4109  width: 44px;
4110  height: 44px;
4111  border-radius: 12px;
4112  background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
4113  display: flex;
4114  align-items: center;
4115  justify-content: center;
4116  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4117  flex-shrink: 0;
4118  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue4}};
4119
4120  i {
4121    font-size: 20px;
4122    line-height: 1;
4123  }
4124`,ch=kr.div`
4125  flex: 1;
4126  text-align: left;
4127  min-width: 0;
4128`,uh=kr.h3`
4129  font-size: 0.975rem;
4130  font-weight: 600;
4131  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4132  margin: 0 0 0.15rem 0;
4133  white-space: nowrap;
4134  overflow: hidden;
4135  text-overflow: ellipsis;
4136`,dh=kr.p`
4137  font-size: 0.775rem;
4138  color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
4139  margin: 0;
4140  line-height: 1.3;
4141  white-space: nowrap;
4142  overflow: hidden;
4143  text-overflow: ellipsis;
4144`,ph=kr.div`
4145  color: ${e=>{let{theme:t}=e;return t.colors.blue7}};
4146  font-size: 18px;
4147  line-height: 1;
4148  flex-shrink: 0;
4149  transition: all 0.3s ease;
4150`,fh=kr.div`
4151  position: absolute;
4152  top: 0;
4153  left: -100%;
4154  width: 100%;
4155  height: 100%;
4156  background: linear-gradient(90deg, transparent, ${e=>{let{theme:t}=e;return t.colors.blue4}}, transparent);
4157  opacity: 0.5;
4158  transition: left 0.6s ease;
4159`,mh=kr.a`
4160  display: block;
4161  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
4162  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
4163  border-radius: 20px;
4164  padding: 0;
4165  font-family: inherit;
4166  text-decoration: none;
4167  transition: all 0.3s ease;
4168  position: relative;
4169  overflow: hidden;
4170  width: 100%;
4171  animation: ${Wm} 0.6s ease-out calc(var(--index) * 0.1s) both;
4172
4173  @media (max-width: 480px) {
4174    border-radius: 16px;
4175  }
4176
4177  &:hover {
4178    transform: translateY(-5px);
4179    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
4180    border-color: ${e=>{let{theme:t}=e;return t.colors.blue4}};
4181    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
4182  }
4183
4184  &:hover ${fh} {
4185    left: 100%;
4186  }
4187
4188  &:hover ${ph} {
4189    color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4190    transform: translateX(3px);
4191  }
4192
4193  &.featured {
4194    background: ${e=>{let{theme:t}=e;return t.colors.blue4}};
4195    border: 2px solid ${e=>{let{theme:t}=e;return t.colors.blue6}};
4196
4197    &::before {
4198      content: '';
4199      position: absolute;
4200      top: 0;
4201      left: 0;
4202      right: 0;
4203      height: 2px;
4204      background: linear-gradient(90deg, ${e=>{let{theme:t}=e;return t.colors.blue8}}, ${e=>{let{theme:t}=e;return t.colors.blue6}});
4205      background-size: 200% 100%;
4206      animation: ${Km} 3s ease-in-out infinite;
4207    }
4208  }
4209
4210  &.copied {
4211    background: ${e=>{let{theme:t}=e;return t.colors.blue5}};
4212    border-color: ${e=>{let{theme:t}=e;return t.colors.blue7}};
4213  }
4214`,hh=kr.section`
4215  display: block;
4216  animation: ${Wm} 0.6s ease-out calc(var(--index) * 0.1s) both;
4217`,gh=kr.div`
4218  display: grid;
4219  gap: 0.1rem;
4220`,bh=kr.a`
4221  display: block;
4222  border-radius: 20px;
4223  overflow: hidden;
4224  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
4225  margin-bottom: 1.25rem;
4226  background: #000;
4227  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
4228  position: relative;
4229  aspect-ratio: 16 / 9;
4230  text-decoration: none;
4231
4232  img {
4233    position: absolute;
4234    inset: 0;
4235    width: 100%;
4236    height: 100%;
4237    object-fit: cover;
4238    display: block;
4239    transition: transform 0.3s ease;
4240  }
4241
4242  &:hover img {
4243    transform: scale(1.03);
4244  }
4245
4246  &:hover {
4247    border-color: ${e=>{let{theme:t}=e;return t.colors.blue5}};
4248  }
4249
4250  @media (max-width: 480px) {
4251    border-radius: 16px;
4252    margin-bottom: 1rem;
4253  }
4254`,vh=kr.div`
4255  position: absolute;
4256  inset: 0;
4257  display: flex;
4258  align-items: center;
4259  justify-content: center;
4260  background: transparent;
4261`,yh=kr.div`
4262  display: grid;
4263  grid-template-columns: 1fr 1fr;
4264  gap: 0.75rem;
4265  margin-bottom: 0.75rem;
4266
4267  @media (max-width: 520px) {
4268    gap: 0.625rem;
4269  }
4270`,xh=kr.a`
4271  min-height: 154px;
4272  border-radius: 20px;
4273  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
4274  background:
4275    linear-gradient(135deg, rgba(15, 17, 19, 0.12), rgba(15, 17, 19, 0.72)),
4276    ${e=>{let{$image:t}=e;return t?`url(${t})`:"#17191c"}};
4277  background-size: cover;
4278  background-position: center;
4279  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4280  overflow: hidden;
4281  position: relative;
4282  text-decoration: none;
4283  display: flex;
4284  align-items: flex-end;
4285  padding: 1rem;
4286  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
4287
4288  &:hover {
4289    transform: translateY(-3px);
4290    border-color: ${e=>{let{theme:t}=e;return t.colors.blue5}};
4291    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16);
4292  }
4293
4294  @media (max-width: 520px) {
4295    border-radius: 16px;
4296    min-height: 118px;
4297    padding: 0.75rem;
4298  }
4299`,wh=kr.span`
4300  position: absolute;
4301  inset: 0;
4302  background:
4303    linear-gradient(180deg, rgba(15, 17, 19, 0.08), rgba(15, 17, 19, 0.68)),
4304    rgba(15, 17, 19, 0.1);
4305`,Eh=kr.div`
4306  position: relative;
4307  z-index: 1;
4308  display: grid;
4309  gap: 0.25rem;
4310  padding-right: 1.75rem;
4311
4312  h2 {
4313    font-size: 1.1rem;
4314    line-height: 1.15;
4315    margin: 0;
4316
4317    @media (max-width: 520px) {
4318      font-size: 0.9rem;
4319      line-height: 1.08;
4320    }
4321  }
4322
4323  p {
4324    color: ${e=>{let{theme:t}=e;return t.colors.blue10}};
4325    font-size: 0.78rem;
4326    line-height: 1.35;
4327    margin: 0;
4328
4329    @media (max-width: 520px) {
4330      display: none;
4331    }
4332  }
4333`,_h=kr.i`
4334  position: absolute;
4335  right: 1rem;
4336  top: 1rem;
4337  z-index: 1;
4338  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4339  font-size: 18px;
4340
4341  @media (max-width: 520px) {
4342    display: none;
4343  }
4344`,kh=kr.div`
4345    position: absolute;
4346    inset: 0;
4347    cursor: pointer;
4348
4349  img {
4350    width: 100%;
4351    height: 100%;
4352    object-fit: cover;
4353    display: block;
4354  }
4355`,Th=kr.div`
4356  display: flex;
4357  align-items: center;
4358  justify-content: center;
4359  width: 48px;
4360  height: 48px;
4361  border-radius: 50%;
4362  background: rgba(255, 255, 255, 0.92);
4363  color: ${e=>{let{theme:t}=e;return t.colors.blue1}};
4364  flex: 0 0 auto;
4365  transition: background 0.2s ease;
4366
4367  i {
4368    font-size: 26px;
4369    line-height: 1;
4370  }
4371
4372  ${bh}:hover & {
4373    transform: scale(1.08);
4374  }
4375`,Ch=kr.div`
4376  display: flex;
4377  justify-content: center;
4378  gap: 0.75rem;
4379  padding-bottom: 1.5rem;
4380`,Sh=kr.a`
4381  display: flex;
4382  align-items: center;
4383  justify-content: center;
4384  width: 44px;
4385  height: 44px;
4386  border-radius: 50%;
4387  background: ${e=>{let{theme:t}=e;return t.colors.blue2}};
4388  border: 1px solid ${e=>{let{theme:t}=e;return t.colors.blue3}};
4389  color: ${e=>{let{theme:t}=e;return t.colors.blue9}};
4390  text-decoration: none;
4391  transition: all 0.25s ease;
4392
4393  i {
4394    font-size: 20px;
4395    line-height: 1;
4396  }
4397
4398  &:hover {
4399    background: ${e=>{let{theme:t}=e;return t.colors.blue3}};
4400    border-color: ${e=>{let{theme:t}=e;return t.colors.blue5}};
4401    transform: translateY(-2px);
4402  }
4403`,Ph={Container:Qm,ContentWrapper:Xm,ProfileCard:Jm,ProfileBackgroundVideo:Zm,AvatarContainer:eh,Avatar:th,StatusDot:nh,ProfileInfo:rh,Username:oh,JobTitle:ih,VideoFeature:bh,VideoOverlay:vh,FlagshipGrid:yh,FlagshipTile:xh,TileShade:wh,FlagshipCopy:Eh,ExternalIcon:_h,VideoThumbnail:kh,PlayButton:Th,LinksGrid:ah,LinkCard:mh,UpdatesSection:hh,UpdatesHeader:gh,CardGlow:fh,CardContent:lh,IconWrapper:sh,TextContent:ch,CardTitle:uh,CardDescription:dh,ActionIcon:ph,BottomSocials:Ch,SocialIconLink:Sh},Ah=()=>{Co({title:"Links | Austin Davenport",description:"Austin Davenport creator hub with the latest YouTube video, ClipboardIt, YouTool.io, all tools, Creator Updates, and support links.",path:"/links"});const e=(e,t,n)=>{qc("links_tile_clicked",{tile_id:e,tile_name:t,destination_type:n,source_page:"links"})},t=Gm.filter((e=>"creator-updates"!==e.id)),n=Gm.find((e=>"creator-updates"===e.id));return(0,$r.jsx)(Ph.Container,{children:(0,$r.jsxs)(Ph.ContentWrapper,{children:[(0,$r.jsxs)(Ph.ProfileCard,{children:[(0,$r.jsxs)(Ph.ProfileBackgroun
4403dVideo,{autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",poster:"/images/home/bg-video-poster.jpg","aria-hidden":"true",children:[(0,$r.jsx)("source",{src:"/videos/home-bg-1280.webm",type:"video/webm"}),(0,$r.jsx)("source",{src:"/videos/home-bg-1280.mp4",type:"video/mp4"})]}),(0,$r.jsxs)(Ph.AvatarContainer,{children:[(0,$r.jsx)(Ph.Avatar,{children:(0,$r.jsx)("img",{src:"https://64.media.tumblr.com/44ab51b7b5c73d1a68f728d92becd3b3/029f5263603a04c1-96/s2048x3072/cd2e6fdd67cb4fe3ad30bf06ef4b75c42291e2f6.pnj",alt:"Austin Davenport"})}),(0,$r.jsx)(Ph.StatusDot,{})]}),(0,$r.jsxs)(Ph.ProfileInfo,{children:[(0,$r.jsx)(Ph.Username,{children:"Austin Davenport"}),(0,$r.jsx)(Ph.JobTitle,{children:"Professional Video Editor"})]})]}),(0,$r.jsxs)(Ph.VideoFeature,{href:Fm,target:"_blank",rel:"noopener noreferrer","aria-label":`${Dm}: ${Um}`,onClick:()=>e("latest-youtube-video",Dm,"external"),children:[(0,$r.jsx)("img",{src:$m,alt:"",loading:"eager"}),(0,$r.jsx)(Ph.VideoOverlay,{children:(0,$r.jsx)(Ph.PlayButton,{"aria-hidden":"true",children:(0,$r.jsx)("i",{className:"bx bx-play"})})})]}),(0,$r.jsx)(Ph.FlagshipGrid,{"aria-label":"Flagship tools",children:Hm.map((t=>(0,$r.jsxs)(Ph.FlagshipTile,{href:t.url,target:"_blank",rel:"noopener noreferrer",$image:t.image,"aria-label":t.description?`${t.title}: ${t.description}`:t.title,onClick:()=>e(t.id,t.title,"external"),children:[(0,$r.jsx)(Ph.TileShade,{}),(0,$r.jsxs)(Ph.FlagshipCopy,{children:[(0,$r.jsx)("h2",{children:t.title}),t.description&&(0,$r.jsx)("p",{children:t.description})]}),(0,$r.jsx)(Ph.ExternalIcon,{className:"bx bx-link-external","aria-hidden":"true"})]},t.id)))}),(0,$r.jsxs)(Ph.LinksGrid,{children:[t.map(((t,n)=>(0,$r.jsxs)(Ph.LinkCard,{href:t.url,target:t.external?"_blank":void 0,rel:t.external?"noopener noreferrer":void 0,onClick:()=>e(t.id,t.title,t.external?"external":"internal"),style:{"--index":n},children:[(0,$r.jsx)(Ph.CardGlow,{}),(0,$r.jsxs)(Ph.CardContent,{children:[(0,$r.jsx)(Ph.IconWrapper,{children:(0,$r.jsx)("i",{className:`bx ${t.icon}`,"aria-hidden":"true"})}),(0,$r.jsxs)(Ph.TextContent,{children:[(0,$r.jsx)(Ph.CardTitle,{children:t.title}),(0,$r.jsx)(Ph.CardDescription,{children:t.description})]}),(0,$r.jsx)(Ph.ActionIcon,{children:(0,$r.jsx)("i",{className:t.external?"bx bx-link-external":"bx bx-chevron-right","aria-hidden":"true"})})]})]},t.id))),n&&(0,$r.jsx)(Ph.UpdatesSection,{style:{"--index":t.length},children:(0,$r.jsx)(Gf,{source:"source_links",showVisual:!0})})]}),(0,$r.jsx)(Ph.BottomSocials,{children:Ym.filter((e=>"youtube"===e.id)).map((t=>(0,$r.jsx)(Ph.SocialIconLink,{href:t.url,target:t.external?"_blank":void 0,rel:t.external?"noopener noreferrer":void 0,"aria-label":t.title,onClick:()=>e(t.id,t.title,t.external?"external":"internal"),children:(0,$r.jsx)("i",{className:`bx ${t.icon}`,"aria-hidden":"true"})},t.id)))})]})})},Rh=()=>(0,$r.jsxs)(Ee,{children:[(0,$r.jsx)(xe,{path:"/",element:(0,$r.jsx)(Bd,{})}),(0,$r.jsx)(xe,{path:"/links",element:(0,$r.jsx)(Ah,{})}),(0,$r.jsx)(xe,{path:"/extra-links",element:(0,$r.jsx)(Qc,{})}),(0,$r.jsx)(xe,{path:"/store",element:(0,$r.jsx)(Mm,{})}),(0,$r.jsx)(xe,{path:"/blog",element:(0,$r.jsx)(So,{})}),(0,$r.jsx)(xe,{path:"/blog/:slug",element:(0,$r.jsx)(bc,{})}),(0,$r.jsx)(xe,{path:"/portfolio",element:(0,$r.jsx)(Gp,{})}),(0,$r.jsx)(xe,{path:"/contact",element:(0,$r.jsx)(Vc,{})}),(0,$r.jsx)(xe,{path:"/projects",element:(0,$r.jsx)(Tf,{})}),(0,$r.jsx)(xe,{path:"/privacy-policy",element:(0,$r.jsx)(rf,{})}),(0,$r.jsx)(xe,{path:"*",element:(0,$r.jsx)(sp,{})})]});function Ih(){return"undefined"!==typeof window}function Lh(){try{const e="production";if("development"===e||"test"===e)return"development"}catch(Fh){}return"production"}function Oh(){return(Ih()?window.vam:Lh())||"production"}function jh(){return"development"===Oh()}function zh(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{debug:!0};var t;if(!Ih())return;!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto";window.vam="auto"!==e?e:Lh()}(e.mode),window.va||(window.va=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];(window.vaq=window.vaq||[]).push(t)}),e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend));const n=function(e){return e.scriptSrc?e.scriptSrc:jh()?"https://va.vercel-scripts.com/v1/script.debug.js":e.basePath?`${e.basePath}
4403/insights/script.js`:"/_vercel/insights/script.js"}(e);if(document.head.querySelector(`script[src*="${n}"]`))return;const r=document.createElement("script");r.src=n,r.defer=!0,r.dataset.sdkn="@vercel/analytics"+(e.framework?`/${e.framework}`:""),r.dataset.sdkv="1.5.0",e.disableAutoTrack&&(r.dataset.disableAutoTrack="1"),e.endpoint?r.dataset.endpoint=e.endpoint:e.basePath&&(r.dataset.endpoint=`${e.basePath}/insights`),e.dsn&&(r.dataset.dsn=e.dsn),r.onerror=()=>{const e=jh()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log(`[Vercel Web Analytics] Failed to load script from ${n}. ${e}`)},jh()&&!1===e.debug&&(r.dataset.debug="false"),document.head.appendChild(r)}function Nh(){if("undefined"!==typeof process)return{NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_NAME:"Austin Davenport",REACT_APP_VERCEL_GIT_PROVIDER:"github",REACT_APP_FOURTHWALL_STORE_URL:"https://shop.austindavenport.com",REACT_APP_YOUTUBE_API_KEY3:"AIzaSyDp8i39ENW1qGbBmcQRRU3blxEiA-hbUzA",REACT_APP_YOUTUBE_API_KEY2:"AIzaSyBfq8y1Ly2AgUtjul_NNBbg4FaHMB8TC5E",REACT_APP_VERCEL_PROJECT_ID:"prj_IvPoO5rw70cXAHHM1nE5KzHxWrLq",REACT_APP_VERCEL_GIT_PULL_REQUEST_ID:"",REACT_APP_VERCEL_OBSERVABILITY_CLIENT_CONFIG:'{"analytics":{"scriptSrc":"1d370a2153a2a469/script.js","viewEndpoint":"1d370a2153a2a469/view","eventEndpoint":"1d370a2153a2a469/event","sessionEndpoint":"1d370a2153a2a469/session"}
4403,"speedInsights":{"scriptSrc":"e1c90db447abc8ba/script.js","endpoint":"e1c90db447abc8ba/vitals"}}',REACT_APP_FOURTHWALL_CURRENCY:"USD",REACT_APP_YOUTUBE_API_KEY:"AIzaSyBjVLVLmTcsgPTdlfH0Cmf4whKDuLTtLTI",REACT_APP_VERCEL_GIT_COMMIT_MESSAGE:"Remove Supabase from portfolio site",REACT_APP_FOURTHWALL_STOREFRONT_TOKEN:"ptkn_e0f06540-3748-45a4-9a7a-aac6f2545c09",REACT_APP_KIT_FORM_ID:"9751653",REACT_APP_VERCEL_DEPLOYMENT_ID:"dpl_7XvjnbMkhK84nP1wpHcsNHiHVg8a",REACT_APP_VERCEL_GIT_REPO_SLUG:"AD1772Portfolio2025",REACT_APP_VERCEL_TARGET_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_SHA:"9373305d4bcc25ea5ad19330f8055df4246bf616",REACT_APP_VERCEL_ENV:"production",REACT_APP_VERCEL_GIT_COMMIT_REF:"main",REACT_APP_VERCEL_URL:"austindavenport-o8eakqtla-austins-projects-43a75f06.vercel.app",REACT_APP_VERCEL_PROJECT_PRODUCTION_URL:"www.austindavenport.com",REACT_APP_VERCEL_GIT_PREVIOUS_SHA:"",REACT_APP_VERCEL_GIT_REPO_ID:"",REACT_APP_VERCEL_GIT_COMMIT_AUTHOR_LOGIN:"",REACT_APP_VERCEL_GIT_REPO_OWNER:"davenaus",REACT_APP_YOUTUBE_CHANNEL_ID:"UCg_JArLpHeN9P34qMd9W5rQ"}.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}function Mh(e){return(0,o.useEffect)((()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))}),[e.beforeSend]),(0,o.useEffect)((()=>{zh({framework:e.framework||"react",basePath:e.basePath??Nh(),...void 0!==e.route&&{disableAutoTrack:!0},...e})}),[]),(0,o.useEffect)((()=>{e.route&&e.path&&function(e){let{route:t,path:n}=e;var r;null==(r=window.va)||r.call(window,"pageview",{route:t,path:n})}({route:e.route,path:e.path})}),[e.route,e.path]),null}class Dh extends o.Component{constructor(e){super(e),this.state={hasError:!1}}static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?(0,$r.jsxs)("div",{role:"alert",style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"50vh",gap:"1rem",color:"#b1b4b8",fontFamily:"Poppins, sans-serif",textAlign:"center",padding:"2rem"},children:[(0,$r.jsx)("h2",{style:{color:"#eceef1"},children:"Something went wrong"}),(0,$r.jsx)("p",{children:"Please refresh the page to try again."}),(0,$r.jsx)("button",{onClick:()=>window.location.reload(),style:{padding:"0.75rem 1.5rem",background:"#212326",color:"#fafcff",border:"none",borderRadius:"8px",cursor:"pointer",fontSize:"1rem",fontFamily:"Poppins, sans-serif"},children:"Refresh Page"})]}):this.props.children}}const Uh=()=>(0,$r.jsx)(Pe,{children:(0,$r.jsxs)(gr,{theme:Gr,children:[(0,$r.jsx)(Hr,{theme:Gr}),(0,$r.jsx)(Dh,{children:(0,$r.jsx)(Br,{children:(0,$r.jsx)(Rh,{})})}),(0,$r.jsx)(Mh,{})]})});a.createRoot(document.getElementById("root")).render((0,$r.jsx)(o.StrictMode,{children:(0,$r.jsx)(Uh,{})}))})()})();
4404//# sourceMappingURL=main.79ccb273.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.