const W={},g="data-astro-transition-persist",re=["data-astro-transition","data-astro-transition-fallback"],M=new Set;function U(e){const t=e.src?new URL(e.src,location.href).href:e.textContent;return M.has(t)?!0:(M.add(t),!1)}function ie(e){for(const t of e.scripts)!t.hasAttribute("data-astro-rerun")&&U(t)&&(t.dataset.astroExec="")}function se(e){const t=document.documentElement,n=[...t.attributes].filter(({name:o})=>(t.removeAttribute(o),re.includes(o)));[...e.documentElement.attributes,...n].forEach(({name:o,value:r})=>t.setAttribute(o,r))}function ae(e){for(const t of Array.from(document.head.children)){const n=ue(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ce(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${g}]`)){const o=n.getAttribute(g),r=e.querySelector(`[${g}="${o}"]`);r&&(r.replaceWith(n),r.localName==="astro-island"&&de(n)&&!fe(n,r)&&(n.setAttribute("ssr",""),n.setAttribute("props",r.getAttribute("props"))))}V(e)}function V(e){e.querySelectorAll("template[shadowrootmode]").forEach(t=>{const n=t.getAttribute("shadowrootmode"),o=t.parentNode;if((n==="closed"||n==="open")&&o instanceof HTMLElement){if(o.shadowRoot){t.remove();return}const r=o.attachShadow({mode:n});r.appendChild(t.content),t.remove(),V(r)}})}const le=()=>{const e=document.activeElement;if(e?.closest(`[${g}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>k({activeElement:e,start:t,end:n})}return()=>k({activeElement:e})}else return()=>k({activeElement:null})},k=({activeElement:e,start:t,end:n})=>{e&&(e.focus(),(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement)&&(typeof t=="number"&&(e.selectionStart=t),typeof n=="number"&&(e.selectionEnd=n)))},ue=(e,t)=>{const n=e.getAttribute(g),o=n&&t.head.querySelector(`[${g}="${n}"]`);if(o)return o;if(e.matches("link[rel=stylesheet]")){const r=e.getAttribute("href");return t.head.querySelector(`link[rel=stylesheet][href="${r}"]`)}return null},de=e=>{const t=e.dataset.astroTransitionPersistProps;return t==null||t==="false"},fe=(e,t)=>e.getAttribute("props")===t.getAttribute("props"),me=e=>{ie(e),se(e),ae(e);const t=le();ce(e.body,document.body),t()},he="astro:before-preparation",we="astro:after-preparation",ye="astro:before-swap",pe="astro:after-swap",ge=e=>document.dispatchEvent(new Event(e));class j extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,n,o,r,i,l,a,c,d,u){super(t,n),this.from=o,this.to=r,this.direction=i,this.navigationType=l,this.sourceElement=a,this.info=c,this.newDocument=d,this.signal=u,Object.defineProperties(this,{from:{enumerable:!0},to:{enumerable:!0,writable:!0},direction:{enumerable:!0,writable:!0},navigationType:{enumerable:!0},sourceElement:{enumerable:!0},info:{enumerable:!0},newDocument:{enumerable:!0,writable:!0},signal:{enumerable:!0}})}}class be extends j{formData;loader;constructor(t,n,o,r,i,l,a,c,d,u){super(he,{cancelable:!0},t,n,o,r,i,l,a,c),this.formData=d,this.loader=u.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class ve extends j{direction;viewTransition;swap;constructor(t,n){super(ye,void 0,t.from,t.to,t.direction,t.navigationType,t.sourceElement,t.info,t.newDocument,t.signal),this.direction=t.direction,this.viewTransition=n,this.swap=()=>me(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function Te(e,t,n,o,r,i,l,a,c){const d=new be(e,t,n,o,r,i,window.document,l,a,c);return document.dispatchEvent(d)&&(await d.loader(),d.defaultPrevented||(ge(we),d.navigationType!=="traverse"&&x({scrollX,scrollY}))),d}async function Ae(e,t,n){const o=new ve(e,t);return document.dispatchEvent(o),n&&await n(),o.swap(),o}const x=e=>{history.state&&(history.scrollRestoration="manual",history.replaceState({...history.state,...e},""))},N=!!document.startViewTransition,O=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),K=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let m,p,R;const z=e=>document.dispatchEvent(new Event(e)),G=()=>z("astro:page-load"),Ee=()=>{let e=document.createElement("div");e.setAttribute("aria-live","assertive"),e.setAttribute("aria-atomic","true"),e.className="astro-route-announcer",document.body.append(e),setTimeout(()=>{let t=document.title||document.querySelector("h1")?.textContent||location.pathname;e.textContent=t},60)},F="data-astro-transition-persist",C="data-astro-transition",P="data-astro-transition-fallback",A="data-vite-dev-id";let $,v=0;history.state?(v=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):O()&&(history.replaceState({index:v,scrollX,scrollY},""),history.scrollRestoration="manual");async function Se(e,t){try{const n=new Headers(t?.headers);for(const[a,c]of Object.entries(W))n.set(a,c);const o=await fetch(e,{...t,headers:n}),i=(o.headers.get("content-type")??"").split(";",1)[0].trim();return i!=="text/html"&&i!=="application/xhtml+xml"?null:{html:await o.text(),redirected:o.redirected?o.url:void 0,mediaType:i}}catch{return null}}function J(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function Re(){let e=Promise.resolve(),t=!1;for(const n of document.getElementsByTagName("script"))n.dataset.astroExec===void 0&&n.getAttribute("type")==="module"&&(t=n.getAttribute("src")===null);t&&document.body.insertAdjacentHTML("beforeend",'<script type="module" src="data:application/javascript,"/>');for(const n of document.getElementsByTagName("script")){if(n.dataset.astroExec==="")continue;const o=n.getAttribute("type");if(o&&o!=="module"&&o!=="text/javascript")continue;const r=document.createElement("script");r.innerHTML=n.innerHTML;for(const i of n.attributes){if(i.name==="src"){const l=new Promise(a=>{r.onload=r.onerror=a});e=e.then(()=>l)}r.setAttribute(i.name,i.value)}r.dataset.astroExec="",n.replaceWith(r)}return e}const Q=(e,t,n,o,r)=>{const i=K(t,e),l=document.title;document.title=o;let a=!1;if(e.href!==location.href&&!r)if(n.history==="replace"){const c=history.state;history.replaceState({...n.state,index:c.index,scrollX:c.scrollX,scrollY:c.scrollY},"",e.href)}else history.pushState({...n.state,index:++v,scrollX:0,scrollY:0},"",e.href);if(document.title=l,R=e,i||(scrollTo({left:0,top:0,behavior:"instant"}),a=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const c=history.state;location.href=e.href,history.state||(history.replaceState(c,""),i&&window.dispatchEvent(new PopStateEvent("popstate")))}else a||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function Le(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${F}="${n.getAttribute(F)}"], link[rel=stylesheet][href="${n.getAttribute("href")}"]`)){const o=document.createElement("link");o.setAttribute("rel","preload"),o.setAttribute("as","style"),o.setAttribute("href",n.getAttribute("href")),t.push(new Promise(r=>{["load","error"].forEach(i=>o.addEventListener(i,r)),document.head.append(o)}))}return t}async function q(e,t,n,o,r){async function i(d){function u(f){const w=f.effect;return!w||!(w instanceof KeyframeEffect)||!w.target?!1:window.getComputedStyle(w.target,w.pseudoElement).animationIterationCount==="infinite"}const s=document.getAnimations();document.documentElement.setAttribute(P,d);const b=document.getAnimations().filter(f=>!s.includes(f)&&!u(f));return Promise.allSettled(b.map(f=>f.finished))}const l=async()=>{if(r==="animate"&&!n.transitionSkipped&&!e.signal.aborted)try{await i("old")}catch{}},a=document.title,c=await Ae(e,n.viewTransition,l);Q(c.to,c.from,t,a,o),z(pe),r==="animate"&&(!n.transitionSkipped&&!c.signal.aborted?i("new").finally(()=>n.viewTransitionFinished()):n.viewTransitionFinished())}function ke(){return m?.controller.abort(),m={controller:new AbortController}}async function Z(e,t,n,o,r){const i=ke();if(!O()||location.origin!==n.origin){i===m&&(m=void 0),location.href=n.href;return}const l=r?"traverse":o.history==="replace"?"replace":"push";if(l!=="traverse"&&x({scrollX,scrollY}),K(t,n)&&!o.formData&&(e!=="back"&&n.hash||e==="back"&&t.hash)){Q(n,t,o,document.title,r),i===m&&(m=void 0);return}const a=await Te(t,n,e,l,o.sourceElement,o.info,i.controller.signal,o.formData,c);if(a.defaultPrevented||a.signal.aborted){i===m&&(m=void 0),a.signal.aborted||(location.href=n.href);return}async function c(s){const h=s.to.href,b={signal:s.signal};if(s.formData){b.method="POST";const y=s.sourceElement instanceof HTMLFormElement?s.sourceElement:s.sourceElement instanceof HTMLElement&&"form"in s.sourceElement?s.sourceElement.form:s.sourceElement?.closest("form");b.body=t!==void 0&&Reflect.get(HTMLFormElement.prototype,"attributes",y).getNamedItem("enctype")?.value==="application/x-www-form-urlencoded"?new URLSearchParams(s.formData):s.formData}const f=await Se(h,b);if(f===null){s.preventDefault();return}if(f.redirected){const y=new URL(f.redirected);if(y.origin!==s.to.origin){s.preventDefault();return}const oe=s.to.hash;s.to=y,s.to.hash=oe}if($??=new DOMParser,s.newDocument=$.parseFromString(f.html,f.mediaType),s.newDocument.querySelectorAll("noscript").forEach(y=>y.remove()),!s.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!s.formData){s.preventDefault();return}const w=Le(s.newDocument);w.length&&!s.signal.aborted&&await Promise.all(w),s.signal.aborted||await De(s.newDocument,s.to,s.signal)}async function d(){if(p&&p.viewTransition){try{p.viewTransition.skipTransition()}catch{}try{await p.viewTransition.updateCallbackDone}catch{}}return p={transitionSkipped:!1}}const u=await d();if(a.signal.aborted){i===m&&(m=void 0);return}if(document.documentElement.setAttribute(C,a.direction),N)u.viewTransition=document.startViewTransition(async()=>await q(a,o,u,r));else{const s=(async()=>{await Promise.resolve(),await q(a,o,u,r,J())})();u.viewTransition={updateCallbackDone:s,ready:s,finished:new Promise(h=>u.viewTransitionFinished=h),skipTransition:()=>{u.transitionSkipped=!0,document.documentElement.removeAttribute(P)},types:new Set}}u.viewTransition?.updateCallbackDone.finally(async()=>{await Re(),G(),Ee()}),u.viewTransition?.finished.finally(()=>{u.viewTransition=void 0,u===p&&(p=void 0),i===m&&(m=void 0),document.documentElement.removeAttribute(C),document.documentElement.removeAttribute(P)});try{await u.viewTransition?.updateCallbackDone}catch(s){const h=s;console.log("[astro]",h.name,h.message,h.stack)}}async function _(e,t){await Z("forward",R,new URL(e,location.href),t??{})}function Pe(e){if(!O()&&e.state){location.reload();return}if(e.state===null)return;const t=history.state,n=t.index,o=n>v?"forward":"back";v=n,Z(o,R,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&x({scrollX,scrollY})};{if(N||J()!=="none")if(R=new URL(location.href),addEventListener("popstate",Pe),addEventListener("load",G),"onscrollend"in window)addEventListener("scrollend",X);else{let e,t,n,o;const r=()=>{if(o!==history.state?.index){clearInterval(e),e=void 0;return}if(t===scrollY&&n===scrollX){clearInterval(e),e=void 0,X();return}else t=scrollY,n=scrollX};addEventListener("scroll",()=>{e===void 0&&(o=history.state?.index,t=scrollY,n=scrollX,e=window.setInterval(r,50))},{passive:!0})}for(const e of document.getElementsByTagName("script"))U(e),e.dataset.astroExec=""}async function De(e,t,n){if(e.body.querySelector("astro-island[client='only']")){const o=document.createElement("iframe");o.src=t.href,o.style.display="none",document.body.append(o),o.contentWindow.console=Object.keys(console).reduce((l,a)=>(l[a]=()=>{},l),{}),await i(o);const r=o.contentDocument?.head;r&&[...r.querySelectorAll(`style[${A}]`)].map(a=>a.getAttribute(A)).forEach(a=>{const c=r.querySelector(`style[${A}="${a}"]`);c&&!e.head.querySelector(`style[${A}="${a}"]`)&&e.head.appendChild(c.cloneNode(!0))});async function i(l){return n.aborted||await new Promise(a=>l.contentWindow?.addEventListener("load",a,{once:!0})),new Promise(async a=>{for(let c=0;c<=20&&!(n.aborted||!l.contentDocument.body.querySelector("astro-island[ssr]"));++c)await new Promise(d=>setTimeout(d,50));a()})}}}const D=console.debug,ee=new Set,S=new WeakSet;let I,te,Y=!1;function Ie(e){Y||(Y=!0,D?.("[astro] Initializing prefetch script"),I??=e?.prefetchAll,te??=e?.defaultStrategy??"hover",xe(),Ne(),Oe(),Me())}function xe(){for(const e of["touchstart","mousedown"])document.addEventListener(e,t=>{T(t.target,"tap")&&L(t.target.href,{ignoreSlowConnection:!0})},{passive:!0})}function Ne(){let e;document.body.addEventListener("focusin",o=>{T(o.target,"hover")&&t(o)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),H(()=>{for(const o of document.getElementsByTagName("a"))S.has(o)||T(o,"hover")&&(S.add(o),o.addEventListener("mouseenter",t,{passive:!0}),o.addEventListener("mouseleave",n,{passive:!0}))});function t(o){const r=o.target.href;e&&clearTimeout(e),e=setTimeout(()=>{L(r)},80)}function n(){e&&(clearTimeout(e),e=0)}}function Oe(){let e;H(()=>{for(const t of document.getElementsByTagName("a"))S.has(t)||T(t,"viewport")&&(S.add(t),e??=He(),e.observe(t))})}function He(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,i=e.get(r);o.isIntersecting?(i&&clearTimeout(i),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),L(r.href)},300))):i&&(clearTimeout(i),e.delete(r))}})}function Me(){H(()=>{for(const e of document.getElementsByTagName("a"))T(e,"load")&&L(e.href)})}function L(e,t){e=e.replace(/#.*/,"");const n=t?.ignoreSlowConnection??!1;if(Fe(e,n))if(ee.add(e),document.createElement("link").relList?.supports?.("prefetch")&&t?.with!=="fetch"){D?.(`[astro] Prefetching ${e} with <link rel="prefetch">`);const o=document.createElement("link");o.rel="prefetch",o.setAttribute("href",e),document.head.append(o)}else{D?.(`[astro] Prefetching ${e} with fetch`);const o=new Headers;for(const[r,i]of Object.entries(W))o.set(r,i);fetch(e,{priority:"low",headers:o})}}function Fe(e,t){if(!navigator.onLine||!t&&ne())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!ee.has(e)}catch{}return!1}function T(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||I)&&ne()?!0:n==null&&I||n===""?t===te:n===t}function ne(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function H(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}let E=null;function Ce(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function B(e){return e.dataset.astroReload!==void 0}const $e=e=>e.button&&e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey;(N||Ce()!=="none")&&(window.matchMedia("(prefers-reduced-motion)").matches&&console.warn("[transitions]: all view transition animations, including fallback animation, are disabled as this device has the prefer-reduced-motion setting enabled."),document.addEventListener("click",e=>{let t=e.target;if(E=$e(e)?t:null,e.composed&&(t=e.composedPath()[0]),t instanceof Element&&(t=t.closest("a, area")),!(t instanceof HTMLAnchorElement)&&!(t instanceof SVGAElement)&&!(t instanceof HTMLAreaElement))return;const n=t instanceof HTMLElement?t.target:t.target.baseVal,o=t instanceof HTMLElement?t.href:t.href.baseVal,r=new URL(o,location.href).origin;B(t)||t.hasAttribute("download")||!t.href||n&&n!=="_self"||r!==location.origin||E||e.defaultPrevented||(e.preventDefault(),_(o,{history:t.dataset.astroHistory==="replace"?"replace":"auto",sourceElement:t}))}),document.addEventListener("submit",e=>{let t=e.target;const n=e.submitter,o=n&&n===E;if(E=null,t.tagName!=="FORM"||e.defaultPrevented||B(t)||o)return;const r=t,i=new FormData(r,n),l=typeof r.action=="string"?r.action:r.getAttribute("action"),a=typeof r.method=="string"?r.method:r.getAttribute("method");let c=n?.getAttribute("formaction")??l??location.pathname;const d=n?.getAttribute("formmethod")??a??"get";if(d==="dialog"||location.origin!==new URL(c,location.href).origin)return;const u={sourceElement:n??r};if(d==="get"){const s=new URLSearchParams(i),h=new URL(c);h.search=s.toString(),c=h.toString()}else u.formData=i;e.preventDefault(),_(c,u)}),Ie({prefetchAll:!0}));
