diff --git a/dist/404.html b/dist/404.html new file mode 100644 index 0000000..efe9184 --- /dev/null +++ b/dist/404.html @@ -0,0 +1,193 @@ + 404 | z0x

404: Page not found

\ No newline at end of file diff --git a/dist/_astro/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js b/dist/_astro/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js new file mode 100644 index 0000000..474b5bc --- /dev/null +++ b/dist/_astro/ClientRouter.astro_astro_type_script_index_0_lang.BScVxmeO.js @@ -0,0 +1 @@ +const b="data-astro-transition-persist";function J(e){for(const t of document.scripts)for(const n of e.scripts)if(!n.hasAttribute("data-astro-rerun")&&(!t.src&&t.textContent===n.textContent||t.src&&t.type===n.type&&t.src===n.src)){n.dataset.astroExec="";break}}function Q(e){const t=document.documentElement,n=[...t.attributes].filter(({name:o})=>(t.removeAttribute(o),o.startsWith("data-astro-")));[...e.documentElement.attributes,...n].forEach(({name:o,value:r})=>t.setAttribute(o,r))}function Z(e){for(const t of Array.from(document.head.children)){const n=ne(t,e);n?n.remove():t.remove()}document.head.append(...e.head.children)}function ee(e,t){t.replaceWith(e);for(const n of t.querySelectorAll(`[${b}]`)){const o=n.getAttribute(b),r=e.querySelector(`[${b}="${o}"]`);r&&(r.replaceWith(n),r.localName==="astro-island"&&oe(n)&&!re(n,r)&&(n.setAttribute("ssr",""),n.setAttribute("props",r.getAttribute("props"))))}}const te=()=>{const e=document.activeElement;if(e?.closest(`[${b}]`)){if(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement){const t=e.selectionStart,n=e.selectionEnd;return()=>R({activeElement:e,start:t,end:n})}return()=>R({activeElement:e})}else return()=>R({activeElement:null})},R=({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)))},ne=(e,t)=>{const n=e.getAttribute(b),o=n&&t.head.querySelector(`[${b}="${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},oe=e=>{const t=e.dataset.astroTransitionPersistProps;return t==null||t==="false"},re=(e,t)=>e.getAttribute("props")===t.getAttribute("props"),ie=e=>{J(e),Q(e),Z(e);const t=te();ee(e.body,document.body),t()},se="astro:before-preparation",ae="astro:after-preparation",ce="astro:before-swap",le="astro:after-swap",ue=e=>document.dispatchEvent(new Event(e));class $ extends Event{from;to;direction;navigationType;sourceElement;info;newDocument;signal;constructor(t,n,o,r,s,u,a,l,f,c){super(t,n),this.from=o,this.to=r,this.direction=s,this.navigationType=u,this.sourceElement=a,this.info=l,this.newDocument=f,this.signal=c,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 fe extends ${formData;loader;constructor(t,n,o,r,s,u,a,l,f,c){super(se,{cancelable:!0},t,n,o,r,s,u,a,l),this.formData=f,this.loader=c.bind(this,this),Object.defineProperties(this,{formData:{enumerable:!0},loader:{enumerable:!0,writable:!0}})}}class de extends ${direction;viewTransition;swap;constructor(t,n){super(ce,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=()=>ie(this.newDocument),Object.defineProperties(this,{direction:{enumerable:!0},viewTransition:{enumerable:!0},swap:{enumerable:!0,writable:!0}})}}async function me(e,t,n,o,r,s,u,a,l){const f=new fe(e,t,n,o,r,s,window.document,u,a,l);return document.dispatchEvent(f)&&(await f.loader(),f.defaultPrevented||(ue(ae),f.navigationType!=="traverse"&&D({scrollX,scrollY}))),f}function he(e,t){const n=new de(e,t);return document.dispatchEvent(n),n.swap(),n}const pe=history.pushState.bind(history),T=history.replaceState.bind(history),D=e=>{history.state&&(history.scrollRestoration="manual",T({...history.state,...e},""))},x=!!document.startViewTransition,I=()=>!!document.querySelector('[name="astro-view-transitions-enabled"]'),q=(e,t)=>e.pathname===t.pathname&&e.search===t.search;let d,w,A;const B=e=>document.dispatchEvent(new Event(e)),U=()=>B("astro:page-load"),we=()=>{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)},H="data-astro-transition-persist",M="data-astro-transition",P="data-astro-transition-fallback";let O,y=0;history.state?(y=history.state.index,scrollTo({left:history.state.scrollX,top:history.state.scrollY})):I()&&(T({index:y,scrollX,scrollY},""),history.scrollRestoration="manual");async function ge(e,t){try{const n=await fetch(e,t),r=(n.headers.get("content-type")??"").split(";",1)[0].trim();return r!=="text/html"&&r!=="application/xhtml+xml"?null:{html:await n.text(),redirected:n.redirected?n.url:void 0,mediaType:r}}catch{return null}}function V(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function be(){let e=Promise.resolve();for(const t of document.getElementsByTagName("script")){if(t.dataset.astroExec==="")continue;const n=t.getAttribute("type");if(n&&n!=="module"&&n!=="text/javascript")continue;const o=document.createElement("script");o.innerHTML=t.innerHTML;for(const r of t.attributes){if(r.name==="src"){const s=new Promise(u=>{o.onload=o.onerror=u});e=e.then(()=>s)}o.setAttribute(r.name,r.value)}o.dataset.astroExec="",t.replaceWith(o)}return e}const W=(e,t,n,o,r)=>{const s=q(t,e),u=document.title;document.title=o;let a=!1;if(e.href!==location.href&&!r)if(n.history==="replace"){const l=history.state;T({...n.state,index:l.index,scrollX:l.scrollX,scrollY:l.scrollY},"",e.href)}else pe({...n.state,index:++y,scrollX:0,scrollY:0},"",e.href);if(document.title=u,A=e,s||(scrollTo({left:0,top:0,behavior:"instant"}),a=!0),r)scrollTo(r.scrollX,r.scrollY);else{if(e.hash){history.scrollRestoration="auto";const l=history.state;location.href=e.href,history.state||(T(l,""),s&&window.dispatchEvent(new PopStateEvent("popstate")))}else a||scrollTo({left:0,top:0,behavior:"instant"});history.scrollRestoration="manual"}};function ye(e){const t=[];for(const n of e.querySelectorAll("head link[rel=stylesheet]"))if(!document.querySelector(`[${H}="${n.getAttribute(H)}"], 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(s=>o.addEventListener(s,r)),document.head.append(o)}))}return t}async function F(e,t,n,o,r){async function s(l){function f(h){const m=h.effect;return!m||!(m instanceof KeyframeEffect)||!m.target?!1:window.getComputedStyle(m.target,m.pseudoElement).animationIterationCount==="infinite"}const c=document.getAnimations();document.documentElement.setAttribute(P,l);const p=document.getAnimations().filter(h=>!c.includes(h)&&!f(h));return Promise.allSettled(p.map(h=>h.finished))}if(r==="animate"&&!n.transitionSkipped&&!e.signal.aborted)try{await s("old")}catch{}const u=document.title,a=he(e,n.viewTransition);W(a.to,a.from,t,u,o),B(le),r==="animate"&&(!n.transitionSkipped&&!a.signal.aborted?s("new").finally(()=>n.viewTransitionFinished()):n.viewTransitionFinished())}function ve(){return d?.controller.abort(),d={controller:new AbortController}}async function j(e,t,n,o,r){const s=ve();if(!I()||location.origin!==n.origin){s===d&&(d=void 0),location.href=n.href;return}const u=r?"traverse":o.history==="replace"?"replace":"push";if(u!=="traverse"&&D({scrollX,scrollY}),q(t,n)&&(e!=="back"&&n.hash||e==="back"&&t.hash)){W(n,t,o,document.title,r),s===d&&(d=void 0);return}const a=await me(t,n,e,u,o.sourceElement,o.info,s.controller.signal,o.formData,l);if(a.defaultPrevented||a.signal.aborted){s===d&&(d=void 0),a.signal.aborted||(location.href=n.href);return}async function l(i){const p=i.to.href,h={signal:i.signal};if(i.formData){h.method="POST";const g=i.sourceElement instanceof HTMLFormElement?i.sourceElement:i.sourceElement instanceof HTMLElement&&"form"in i.sourceElement?i.sourceElement.form:i.sourceElement?.closest("form");h.body=g?.attributes.getNamedItem("enctype")?.value==="application/x-www-form-urlencoded"?new URLSearchParams(i.formData):i.formData}const m=await ge(p,h);if(m===null){i.preventDefault();return}if(m.redirected){const g=new URL(m.redirected);if(g.origin!==i.to.origin){i.preventDefault();return}i.to=g}if(O??=new DOMParser,i.newDocument=O.parseFromString(m.html,m.mediaType),i.newDocument.querySelectorAll("noscript").forEach(g=>g.remove()),!i.newDocument.querySelector('[name="astro-view-transitions-enabled"]')&&!i.formData){i.preventDefault();return}const L=ye(i.newDocument);L.length&&!i.signal.aborted&&await Promise.all(L)}async function f(){if(w&&w.viewTransition){try{w.viewTransition.skipTransition()}catch{}try{await w.viewTransition.updateCallbackDone}catch{}}return w={transitionSkipped:!1}}const c=await f();if(a.signal.aborted){s===d&&(d=void 0);return}if(document.documentElement.setAttribute(M,a.direction),x)c.viewTransition=document.startViewTransition(async()=>await F(a,o,c,r));else{const i=(async()=>{await Promise.resolve(),await F(a,o,c,r,V())})();c.viewTransition={updateCallbackDone:i,ready:i,finished:new Promise(p=>c.viewTransitionFinished=p),skipTransition:()=>{c.transitionSkipped=!0,document.documentElement.removeAttribute(P)}}}c.viewTransition?.updateCallbackDone.finally(async()=>{await be(),U(),we()}),c.viewTransition?.finished.finally(()=>{c.viewTransition=void 0,c===w&&(w=void 0),s===d&&(d=void 0),document.documentElement.removeAttribute(M),document.documentElement.removeAttribute(P)});try{await c.viewTransition?.updateCallbackDone}catch(i){const p=i;console.log("[astro]",p.name,p.message,p.stack)}}async function C(e,t){await j("forward",A,new URL(e,location.href),t??{})}function Te(e){if(!I()&&e.state){location.reload();return}if(e.state===null)return;const t=history.state,n=t.index,o=n>y?"forward":"back";y=n,j(o,A,new URL(location.href),{},t)}const X=()=>{history.state&&(scrollX!==history.state.scrollX||scrollY!==history.state.scrollY)&&D({scrollX,scrollY})};{if(x||V()!=="none")if(A=new URL(location.href),addEventListener("popstate",Te),addEventListener("load",U),"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"))e.dataset.astroExec=""}const K=new Set,E=new WeakSet;let k,G,Y=!1;function Ee(e){Y||(Y=!0,k??=e?.prefetchAll,G??=e?.defaultStrategy??"hover",Ae(),Se(),Le(),Pe())}function Ae(){for(const e of["touchstart","mousedown"])document.body.addEventListener(e,t=>{v(t.target,"tap")&&S(t.target.href,{ignoreSlowConnection:!0})},{passive:!0})}function Se(){let e;document.body.addEventListener("focusin",o=>{v(o.target,"hover")&&t(o)},{passive:!0}),document.body.addEventListener("focusout",n,{passive:!0}),N(()=>{for(const o of document.getElementsByTagName("a"))E.has(o)||v(o,"hover")&&(E.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(()=>{S(r)},80)}function n(){e&&(clearTimeout(e),e=0)}}function Le(){let e;N(()=>{for(const t of document.getElementsByTagName("a"))E.has(t)||v(t,"viewport")&&(E.add(t),e??=Re(),e.observe(t))})}function Re(){const e=new WeakMap;return new IntersectionObserver((t,n)=>{for(const o of t){const r=o.target,s=e.get(r);o.isIntersecting?(s&&clearTimeout(s),e.set(r,setTimeout(()=>{n.unobserve(r),e.delete(r),S(r.href)},300))):s&&(clearTimeout(s),e.delete(r))}})}function Pe(){N(()=>{for(const e of document.getElementsByTagName("a"))v(e,"load")&&S(e.href)})}function S(e,t){e=e.replace(/#.*/,"");const n=t?.ignoreSlowConnection??!1;if(ke(e,n))if(K.add(e),document.createElement("link").relList?.supports?.("prefetch")&&t?.with!=="fetch"){const o=document.createElement("link");o.rel="prefetch",o.setAttribute("href",e),document.head.append(o)}else fetch(e,{priority:"low"})}function ke(e,t){if(!navigator.onLine||!t&&z())return!1;try{const n=new URL(e,location.href);return location.origin===n.origin&&(location.pathname!==n.pathname||location.search!==n.search)&&!K.has(e)}catch{}return!1}function v(e,t){if(e?.tagName!=="A")return!1;const n=e.dataset.astroPrefetch;return n==="false"?!1:t==="tap"&&(n!=null||k)&&z()?!0:n==null&&k||n===""?t===G:n===t}function z(){if("connection"in navigator){const e=navigator.connection;return e.saveData||/2g/.test(e.effectiveType)}return!1}function N(e){e();let t=!1;document.addEventListener("astro:page-load",()=>{if(!t){t=!0;return}e()})}function De(){const e=document.querySelector('[name="astro-view-transitions-fallback"]');return e?e.getAttribute("content"):"animate"}function _(e){return e.dataset.astroReload!==void 0}(x||De()!=="none")&&(document.addEventListener("click",e=>{let t=e.target;if(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;_(t)||t.hasAttribute("download")||!t.href||n&&n!=="_self"||r!==location.origin||e.button!==0||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.defaultPrevented||(e.preventDefault(),C(o,{history:t.dataset.astroHistory==="replace"?"replace":"auto",sourceElement:t}))}),document.addEventListener("submit",e=>{let t=e.target;if(t.tagName!=="FORM"||e.defaultPrevented||_(t))return;const n=t,o=e.submitter,r=new FormData(n,o),s=typeof n.action=="string"?n.action:n.getAttribute("action"),u=typeof n.method=="string"?n.method:n.getAttribute("method");let a=o?.getAttribute("formaction")??s??location.pathname;const l=o?.getAttribute("formmethod")??u??"get";if(l==="dialog"||location.origin!==new URL(a,location.href).origin)return;const f={sourceElement:o??n};if(l==="get"){const c=new URLSearchParams(r),i=new URL(a);i.search=c.toString(),a=i.toString()}else f.formData=r;e.preventDefault(),C(a,f)}),Ee({prefetchAll:!0})); diff --git a/dist/_astro/_id_.C8-8VbW1.css b/dist/_astro/_id_.C8-8VbW1.css new file mode 100644 index 0000000..980139d --- /dev/null +++ b/dist/_astro/_id_.C8-8VbW1.css @@ -0,0 +1 @@ +*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.relative{position:relative}.-top-12{top:-3rem}.left-2{left:.5rem}.right-0{right:0}.right-2{right:.5rem}.top-1\/2{top:50%}.mx-auto{margin-left:auto;margin-right:auto}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.size-4{width:1rem;height:1rem}.size-5{width:1.25rem;height:1.25rem}.size-9{width:2.25rem;height:2.25rem}.w-fit{width:-moz-fit-content;width:fit-content}.max-w-screen-sm{max-width:640px}.flex-1{flex:1 1 0%}.flex-grow{flex-grow:1}.-translate-x-1{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-1{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-2{--tw-translate-x: .5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-3{--tw-translate-x: .75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-x-0{--tw-scale-x: 0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1\.5{gap:.375rem}.gap-4{gap:1rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-t-lg{border-top-left-radius:.5rem;border-top-right-radius:.5rem}.border{border-width:1px}.border-black\/15{border-color:#00000026}.border-blue-800{--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.border-orange-800{--tw-border-opacity: 1;border-color:rgb(154 52 18 / var(--tw-border-opacity, 1))}.border-red-800{--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.border-yellow-800{--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity, 1))}.bg-black\/5{background-color:#0000000d}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.fill-none{fill:none}.stroke-current{stroke:currentColor}.stroke-2{stroke-width:2}.p-3{padding:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pl-10{padding-left:2.5rem}.pl-8{padding-left:2rem}.pr-10{padding-right:2.5rem}.pr-3{padding-right:.75rem}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-blue-950{--tw-text-opacity: 1;color:rgb(23 37 84 / var(--tw-text-opacity, 1))}.text-current{color:currentColor}.text-orange-950{--tw-text-opacity: 1;color:rgb(67 20 7 / var(--tw-text-opacity, 1))}.text-red-950{--tw-text-opacity: 1;color:rgb(69 10 10 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-950{--tw-text-opacity: 1;color:rgb(66 32 6 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.decoration-black\/30{text-decoration-color:#0000004d}.underline-offset-\[3px\]{text-underline-offset:3px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}article a{font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";color:currentColor;text-decoration-line:underline;text-underline-offset:3px;text-decoration-color:#0000004d}article a:is(.dark *){text-decoration-color:#ffffff4d}article a{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}article a:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}article a:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}article a:hover{text-decoration-color:#00000080}article a:hover:is(.dark *){text-decoration-color:#ffffff80}html{overflow-y:auto;color-scheme:light;scroll-padding-top:100px}html.dark{color-scheme:dark}html,body{width:100%;height:100%}body{font-family:Geist Sans,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:flex;flex-direction:column;--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1))}body:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity, 1))}body{color:#000000bf}body:is(.dark *){color:#ffffffbf}header{position:fixed;left:0;right:0;top:0;z-index:50;padding-top:1.5rem;padding-bottom:1.5rem;background-color:#f5f5f5bf}header:is(.dark *){background-color:#171717bf}header{--tw-saturate: saturate(2);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}main{flex:1 1 0%;padding-top:2.5rem;padding-bottom:2.5rem}footer{padding-top:1.5rem;padding-bottom:1.5rem;font-size:.875rem;line-height:1.25rem}article{color:var(--tw-prose-body);max-width:65ch}article :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}article :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}article :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}article :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}article :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}article :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}article :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}article :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}article :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}article :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}article :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}article :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}article :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}article :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:open-quote}article :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}article :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}article :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}article :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}article :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}article :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}article :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}article :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}article :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}article :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}article :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px rgb(var(--tw-prose-kbd-shadows) / 10%),0 3px rgb(var(--tw-prose-kbd-shadows) / 10%);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:600;font-size:.875em}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:"`"}article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:"`"}article :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}article :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}article :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}article :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}article :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}article :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}article :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}article :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}article :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}article :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}article :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}article :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}article :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}article :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}article{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-kbd: #111827;--tw-prose-kbd-shadows: 17 24 39;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}article :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}article :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}article :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}article :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}article :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}article :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}article :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}article :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}article :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}article :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}article :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}article :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}article :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}article{--tw-prose-body: #404040;--tw-prose-headings: #171717;--tw-prose-lead: #525252;--tw-prose-links: #171717;--tw-prose-bold: #171717;--tw-prose-counters: #737373;--tw-prose-bullets: #d4d4d4;--tw-prose-hr: #e5e5e5;--tw-prose-quotes: #171717;--tw-prose-quote-borders: #e5e5e5;--tw-prose-captions: #737373;--tw-prose-kbd: #171717;--tw-prose-kbd-shadows: 23 23 23;--tw-prose-code: #171717;--tw-prose-pre-code: #e5e5e5;--tw-prose-pre-bg: #262626;--tw-prose-th-borders: #d4d4d4;--tw-prose-td-borders: #e5e5e5;--tw-prose-invert-body: #d4d4d4;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #a3a3a3;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #a3a3a3;--tw-prose-invert-bullets: #525252;--tw-prose-invert-hr: #404040;--tw-prose-invert-quotes: #f5f5f5;--tw-prose-invert-quote-borders: #404040;--tw-prose-invert-captions: #a3a3a3;--tw-prose-invert-kbd: #fff;--tw-prose-invert-kbd-shadows: 255 255 255;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d4d4d4;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #525252;--tw-prose-invert-td-borders: #404040;max-width:100%}article:is(.dark *){--tw-prose-body: var(--tw-prose-invert-body);--tw-prose-headings: var(--tw-prose-invert-headings);--tw-prose-lead: var(--tw-prose-invert-lead);--tw-prose-links: var(--tw-prose-invert-links);--tw-prose-bold: var(--tw-prose-invert-bold);--tw-prose-counters: var(--tw-prose-invert-counters);--tw-prose-bullets: var(--tw-prose-invert-bullets);--tw-prose-hr: var(--tw-prose-invert-hr);--tw-prose-quotes: var(--tw-prose-invert-quotes);--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);--tw-prose-captions: var(--tw-prose-invert-captions);--tw-prose-kbd: var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows: var(--tw-prose-invert-kbd-shadows);--tw-prose-code: var(--tw-prose-invert-code);--tw-prose-pre-code: var(--tw-prose-invert-pre-code);--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);--tw-prose-th-borders: var(--tw-prose-invert-th-borders);--tw-prose-td-borders: var(--tw-prose-invert-td-borders)}article :is(:where(img):not(:where([class~=not-prose],[class~=not-prose] *))){margin:auto}article :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){font-weight:600;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}article:is(.dark *) :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose],[class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.animate{--tw-translate-y: -.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:0;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.animate.show{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));opacity:1}html #back-to-top{pointer-events:none;opacity:0}html.scrolled #back-to-top{pointer-events:auto;opacity:1}pre{border-width:1px;border-color:#00000026;padding-top:1.25rem;padding-bottom:1.25rem}pre:is(.dark *){border-color:#fff3}:root{--astro-code-foreground: #09090b;--astro-code-background: #fafafa;--astro-code-token-comment: #a19595;--astro-code-token-keyword: #f47067;--astro-code-token-string: #00a99a;--astro-code-token-function: #429996;--astro-code-token-constant: #2b70c5;--astro-code-token-parameter: #4e8fdf;--astro-code-token-string-expression: #ae42a0;--astro-code-token-punctuation: #8996a3;--astro-code-token-link: #8d85ff}.dark{--astro-code-foreground: #fafafa;--astro-code-background: #09090b;--astro-code-token-comment: #a19595;--astro-code-token-keyword: #f47067;--astro-code-token-string: #00a99a;--astro-code-token-function: #6eafad;--astro-code-token-constant: #b3cceb;--astro-code-token-parameter: #4e8fdf;--astro-code-token-string-expression: #bf7db6;--astro-code-token-punctuation: #8996a3;--astro-code-token-link: #8d85ff}.copy-code{position:absolute;right:.75rem;top:.75rem;display:grid;width:2.25rem;height:2.25rem;place-content:center;border-radius:.25rem;border-width:1px;border-color:#00000026;--tw-bg-opacity: 1;background-color:rgb(245 245 245 / var(--tw-bg-opacity, 1));text-align:center;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.copy-code:is(.dark *){border-color:#fff3;--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity, 1))}.copy-code:hover{--tw-bg-opacity: 1;background-color:rgb(233 233 233 / var(--tw-bg-opacity, 1));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.copy-code:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 35 35 / var(--tw-bg-opacity, 1))}.copy-code:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.hover\:bg-black\/5:hover{background-color:#0000000d}.hover\:text-black:hover{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.hover\:decoration-black\/50:hover{text-decoration-color:#00000080}.focus-visible\:bg-black\/5:focus-visible{background-color:#0000000d}.focus-visible\:text-black:focus-visible{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.focus-visible\:decoration-black\/50:focus-visible{text-decoration-color:#00000080}.group:hover .group-hover\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-x-100{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:hover .group-hover\:stroke-black{stroke:#000}.group:focus-visible .group-focus-visible\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:focus-visible .group-focus-visible\:scale-x-100{--tw-scale-x: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.group:focus-visible .group-focus-visible\:animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.group:focus-visible .group-focus-visible\:stroke-black{stroke:#000}.dark\:border-blue-200\/20:is(.dark *){border-color:#bfdbfe33}.dark\:border-orange-200\/20:is(.dark *){border-color:#fed7aa33}.dark\:border-red-200\/20:is(.dark *){border-color:#fecaca33}.dark\:border-white\/20:is(.dark *){border-color:#fff3}.dark\:border-yellow-200\/20:is(.dark *){border-color:#fef08a33}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-950\/20:is(.dark *){background-color:#450a0a33}.dark\:bg-white\/5:is(.dark *){background-color:#ffffff0d}.dark\:bg-yellow-950\/20:is(.dark *){background-color:#42200633}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:decoration-white\/30:is(.dark *){text-decoration-color:#ffffff4d}.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:#ffffff0d}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:hover\:decoration-white\/50:hover:is(.dark *){text-decoration-color:#ffffff80}.dark\:focus-visible\:bg-white\/5:focus-visible:is(.dark *){background-color:#ffffff0d}.dark\:focus-visible\:text-white:focus-visible:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:focus-visible\:decoration-white\/50:focus-visible:is(.dark *){text-decoration-color:#ffffff80}.group:hover .group-hover\:dark\:stroke-white:is(.dark *){stroke:#fff}.group:focus-visible .dark\:group-focus-visible\:stroke-white:is(.dark *){stroke:#fff}@media (min-width: 640px){.sm\:gap-3{gap:.75rem}}[data-callout]{margin-top:1.5rem;margin-bottom:1.5rem}[data-callout]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}[data-callout]{border-radius:.5rem;border-width:1px;border-color:#2563eb33;background-color:#60a5fa33;padding:1rem 1rem 1.25rem}[data-callout]:is(.dark *){border-color:#1e40af33;background-color:#2563eb1a}[data-callout]>[data-callout-title]{display:flex;flex-direction:row;align-items:flex-start;gap:.5rem;padding:0;font-weight:700;--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}[data-callout]>[data-callout-title]:not:only-child{margin-bottom:.5rem}[data-callout]>[data-callout-title]:empty:after{content:"Note"}[data-callout]>[data-callout-title]:before{margin-top:.25rem;display:block;height:1.25rem;width:1.25rem;background-color:currentColor;--tw-content: "";content:var(--tw-content);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE3IDNhMi44NSAyLjgzIDAgMSAxIDQgNEw3LjUgMjAuNUwyIDIybDEuNS01LjVabS0yIDJsNCA0Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE3IDNhMi44NSAyLjgzIDAgMSAxIDQgNEw3LjUgMjAuNUwyIDIybDEuNS01LjVabS0yIDJsNCA0Ii8+PC9zdmc+)}[data-callout]>[data-callout-body]>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}[data-callout]>[data-callout-body]>*{margin:0}details[data-callout]>summary[data-callout-title]{cursor:pointer}details[data-callout]>summary[data-callout-title]:after{width:100%;background-position:right;background-repeat:no-repeat;content:"";background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im05IDE4bDYtNmwtNi02Ii8+PC9zdmc+);background-size:1.5rem}details[data-callout]>summary[data-callout-title]:not(:empty):after{margin-top:auto;margin-bottom:auto;margin-left:auto;height:1.5rem;width:1.5rem}details[data-callout][open]>summary[data-callout-title]:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im02IDlsNiA2bDYtNiIvPjwvc3ZnPg==)}[data-callout][data-callout-type=info]{border-color:#2563eb33;background-color:#60a5fa33}[data-callout][data-callout-type=info]:is(.dark *){border-color:#1e40af33;background-color:#2563eb1a}[data-callout][data-callout-type=info]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=info]>[data-callout-title]:empty:after{content:"Info"}[data-callout][data-callout-type=info]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00bTAtNGguMDEiLz48L2c+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00bTAtNGguMDEiLz48L2c+PC9zdmc+)}[data-callout][data-callout-type=todo]{border-color:#2563eb33;background-color:#60a5fa33}[data-callout][data-callout-type=todo]:is(.dark *){border-color:#1e40af33;background-color:#2563eb1a}[data-callout][data-callout-type=todo]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=todo]>[data-callout-title]:empty:after{content:"ToDo"}[data-callout][data-callout-type=todo]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiLz48cGF0aCBkPSJtOSAxMWwzIDNMMjIgNCIvPjwvZz48L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiLz48cGF0aCBkPSJtOSAxMWwzIDNMMjIgNCIvPjwvZz48L3N2Zz4=)}[data-callout][data-callout-type=abstract],[data-callout][data-callout-type=summary],[data-callout][data-callout-type=tldr]{border-color:#0891b233;background-color:#22d3ee33}[data-callout][data-callout-type=abstract]:is(.dark *),[data-callout][data-callout-type=summary]:is(.dark *),[data-callout][data-callout-type=tldr]:is(.dark *){border-color:#155e7533;background-color:#0891b21a}[data-callout][data-callout-type=abstract]>[data-callout-title],[data-callout][data-callout-type=summary]>[data-callout-title],[data-callout][data-callout-type=tldr]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=abstract]>[data-callout-title]:before,[data-callout][data-callout-type=summary]>[data-callout-title]:before,[data-callout][data-callout-type=tldr]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNCIgeD0iOCIgeT0iMiIgcng9IjEiIHJ5PSIxIi8+PHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgybTQgN2g0bS00IDVoNG0tOC01aC4wMU04IDE2aC4wMSIvPjwvZz48L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNCIgeD0iOCIgeT0iMiIgcng9IjEiIHJ5PSIxIi8+PHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgybTQgN2g0bS00IDVoNG0tOC01aC4wMU04IDE2aC4wMSIvPjwvZz48L3N2Zz4=)}[data-callout][data-callout-type=abstract]>[data-callout-title]:empty:after{content:"Abstract"}[data-callout][data-callout-type=summary]>[data-callout-title]:empty:after{content:"Summary"}[data-callout][data-callout-type=tldr]>[data-callout-title]:empty:after{content:"TL;DR"}[data-callout][data-callout-type=tip],[data-callout][data-callout-type=hint],[data-callout][data-callout-type=important]{border-color:#0891b233;background-color:#22d3ee33}[data-callout][data-callout-type=tip]:is(.dark *),[data-callout][data-callout-type=hint]:is(.dark *),[data-callout][data-callout-type=important]:is(.dark *){border-color:#155e7533;background-color:#0891b21a}[data-callout][data-callout-type=tip]>[data-callout-title],[data-callout][data-callout-type=hint]>[data-callout-title],[data-callout][data-callout-type=important]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=tip]>[data-callout-title]:before,[data-callout][data-callout-type=hint]>[data-callout-title]:before,[data-callout][data-callout-type=important]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTguNSAxNC41QTIuNSAyLjUgMCAwIDAgMTEgMTJjMC0xLjM4LS41LTItMS0zYy0xLjA3Mi0yLjE0My0uMjI0LTQuMDU0IDItNmMuNSAyLjUgMiA0LjkgNCA2LjVjMiAxLjYgMyAzLjUgMyA1LjVhNyA3IDAgMSAxLTE0IDBjMC0xLjE1My40MzMtMi4yOTQgMS0zYTIuNSAyLjUgMCAwIDAgMi41IDIuNSIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTguNSAxNC41QTIuNSAyLjUgMCAwIDAgMTEgMTJjMC0xLjM4LS41LTItMS0zYy0xLjA3Mi0yLjE0My0uMjI0LTQuMDU0IDItNmMuNSAyLjUgMiA0LjkgNCA2LjVjMiAxLjYgMyAzLjUgMyA1LjVhNyA3IDAgMSAxLTE0IDBjMC0xLjE1My40MzMtMi4yOTQgMS0zYTIuNSAyLjUgMCAwIDAgMi41IDIuNSIvPjwvc3ZnPg==)}[data-callout][data-callout-type=tip]>[data-callout-title]:empty:after{content:"Tip"}[data-callout][data-callout-type=hint]>[data-callout-title]:empty:after{content:"Hint"}[data-callout][data-callout-type=important]>[data-callout-title]:empty:after{content:"Important"}[data-callout][data-callout-type=success],[data-callout][data-callout-type=check],[data-callout][data-callout-type=done]{border-color:#16a34a33;background-color:#4ade8033}[data-callout][data-callout-type=success]:is(.dark *),[data-callout][data-callout-type=check]:is(.dark *),[data-callout][data-callout-type=done]:is(.dark *){border-color:#16653433;background-color:#16a34a1a}[data-callout][data-callout-type=success]>[data-callout-title],[data-callout][data-callout-type=check]>[data-callout-title],[data-callout][data-callout-type=done]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=success]>[data-callout-title]:before,[data-callout][data-callout-type=check]>[data-callout-title]:before,[data-callout][data-callout-type=done]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+)}[data-callout][data-callout-type=success]>[data-callout-title]:empty:after{content:"Success"}[data-callout][data-callout-type=check]>[data-callout-title]:empty:after{content:"Check"}[data-callout][data-callout-type=done]>[data-callout-title]:empty:after{content:"Done"}[data-callout][data-callout-type=question],[data-callout][data-callout-type=help],[data-callout][data-callout-type=faq]{border-color:#ea580c33;background-color:#fb923c33}[data-callout][data-callout-type=question]:is(.dark *),[data-callout][data-callout-type=help]:is(.dark *),[data-callout][data-callout-type=faq]:is(.dark *){border-color:#9a341233;background-color:#ea580c1a}[data-callout][data-callout-type=question]>[data-callout-title],[data-callout][data-callout-type=help]>[data-callout-title],[data-callout][data-callout-type=faq]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=question]>[data-callout-title]:before,[data-callout][data-callout-type=help]>[data-callout-title]:before,[data-callout][data-callout-type=faq]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDNtLjA4IDRoLjAxIi8+PC9nPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDNtLjA4IDRoLjAxIi8+PC9nPjwvc3ZnPg==)}[data-callout][data-callout-type=question]>[data-callout-title]:empty:after{content:"Question"}[data-callout][data-callout-type=help]>[data-callout-title]:empty:after{content:"Help"}[data-callout][data-callout-type=faq]>[data-callout-title]:empty:after{content:"FAQ"}[data-callout][data-callout-type=warning],[data-callout][data-callout-type=caution],[data-callout][data-callout-type=attention]{border-color:#ea580c33;background-color:#fb923c33}[data-callout][data-callout-type=warning]:is(.dark *),[data-callout][data-callout-type=caution]:is(.dark *),[data-callout][data-callout-type=attention]:is(.dark *){border-color:#9a341233;background-color:#ea580c1a}[data-callout][data-callout-type=warning]>[data-callout-title],[data-callout][data-callout-type=caution]>[data-callout-title],[data-callout][data-callout-type=attention]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(249 115 22 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=warning]>[data-callout-title]:before,[data-callout][data-callout-type=caution]>[data-callout-title]:before,[data-callout][data-callout-type=attention]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0ibTIxLjczIDE4bC04LTE0YTIgMiAwIDAgMC0zLjQ4IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM00xMiA5djRtMCA0aC4wMSIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0ibTIxLjczIDE4bC04LTE0YTIgMiAwIDAgMC0zLjQ4IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM00xMiA5djRtMCA0aC4wMSIvPjwvc3ZnPg==)}[data-callout][data-callout-type=warning]>[data-callout-title]:empty:after{content:"Warning"}[data-callout][data-callout-type=caution]>[data-callout-title]:empty:after{content:"Caution"}[data-callout][data-callout-type=attention]>[data-callout-title]:empty:after{content:"Attention"}[data-callout][data-callout-type=failure],[data-callout][data-callout-type=fail],[data-callout][data-callout-type=missing]{border-color:#dc262633;background-color:#f8717133}[data-callout][data-callout-type=failure]:is(.dark *),[data-callout][data-callout-type=fail]:is(.dark *),[data-callout][data-callout-type=missing]:is(.dark *){border-color:#991b1b33;background-color:#dc26261a}[data-callout][data-callout-type=failure]>[data-callout-title],[data-callout][data-callout-type=fail]>[data-callout-title],[data-callout][data-callout-type=missing]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=failure]>[data-callout-title]:before,[data-callout][data-callout-type=fail]>[data-callout-title]:before,[data-callout][data-callout-type=missing]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+)}[data-callout][data-callout-type=failure]>[data-callout-title]:empty:after{content:"Failure"}[data-callout][data-callout-type=fail]>[data-callout-title]:empty:after{content:"Fail"}[data-callout][data-callout-type=missing]>[data-callout-title]:empty:after{content:"Missing"}[data-callout][data-callout-type=danger],[data-callout][data-callout-type=error]{border-color:#dc262633;background-color:#f8717133}[data-callout][data-callout-type=danger]:is(.dark *),[data-callout][data-callout-type=error]:is(.dark *){border-color:#991b1b33;background-color:#dc26261a}[data-callout][data-callout-type=danger]>[data-callout-title],[data-callout][data-callout-type=error]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=danger]>[data-callout-title]:before,[data-callout][data-callout-type=error]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXphcCI+PHBhdGggZD0iTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoiLz48L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXphcCI+PHBhdGggZD0iTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoiLz48L3N2Zz4=)}[data-callout][data-callout-type=danger]>[data-callout-title]:empty:after{content:"Danger"}[data-callout][data-callout-type=error]>[data-callout-title]:empty:after{content:"Error"}[data-callout][data-callout-type=bug]{border-color:#dc262633;background-color:#f8717133}[data-callout][data-callout-type=bug]:is(.dark *){border-color:#991b1b33;background-color:#dc26261a}[data-callout][data-callout-type=bug]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=bug]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0ibTggMmwxLjg4IDEuODhtNC4yNCAwTDE2IDJNOSA3LjEzdi0xYTMuMDAzIDMuMDAzIDAgMSAxIDYgMHYxIi8+PHBhdGggZD0iTTEyIDIwYy0zLjMgMC02LTIuNy02LTZ2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDR2M2MwIDMuMy0yLjcgNi02IDZtMCAwdi05Ii8+PHBhdGggZD0iTTYuNTMgOUM0LjYgOC44IDMgNy4xIDMgNW0zIDhIMm0xIDhjMC0yLjEgMS43LTMuOSAzLjgtNE0yMC45NyA1YzAgMi4xLTEuNiAzLjgtMy41IDRNMjIgMTNoLTRtLS44IDRjMi4xLjEgMy44IDEuOSAzLjggNCIvPjwvZz48L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0ibTggMmwxLjg4IDEuODhtNC4yNCAwTDE2IDJNOSA3LjEzdi0xYTMuMDAzIDMuMDAzIDAgMSAxIDYgMHYxIi8+PHBhdGggZD0iTTEyIDIwYy0zLjMgMC02LTIuNy02LTZ2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDR2M2MwIDMuMy0yLjcgNi02IDZtMCAwdi05Ii8+PHBhdGggZD0iTTYuNTMgOUM0LjYgOC44IDMgNy4xIDMgNW0zIDhIMm0xIDhjMC0yLjEgMS43LTMuOSAzLjgtNE0yMC45NyA1YzAgMi4xLTEuNiAzLjgtMy41IDRNMjIgMTNoLTRtLS44IDRjMi4xLjEgMy44IDEuOSAzLjggNCIvPjwvZz48L3N2Zz4=)}[data-callout][data-callout-type=bug]>[data-callout-title]:empty:after{content:"Bug"}[data-callout][data-callout-type=example]{border-color:#9333ea33;background-color:#c084fc33}[data-callout][data-callout-type=example]:is(.dark *){border-color:#6b21a833;background-color:#9333ea1a}[data-callout][data-callout-type=example]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(168 85 247 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=example]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTggNmgxM004IDEyaDEzTTggMThoMTNNMyA2aC4wMU0zIDEyaC4wMU0zIDE4aC4wMSIvPjwvc3ZnPg==);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTggNmgxM004IDEyaDEzTTggMThoMTNNMyA2aC4wMU0zIDEyaC4wMU0zIDE4aC4wMSIvPjwvc3ZnPg==)}[data-callout][data-callout-type=example]>[data-callout-title]:empty:after{content:"Example"}[data-callout][data-callout-type=quote],[data-callout][data-callout-type=cite]{border-color:#52525b33;background-color:#a1a1aa33}[data-callout][data-callout-type=quote]:is(.dark *),[data-callout][data-callout-type=cite]:is(.dark *){border-color:#27272a33;background-color:#52525b26}[data-callout][data-callout-type=quote]>[data-callout-title],[data-callout][data-callout-type=cite]>[data-callout-title]{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity, 1))}[data-callout][data-callout-type=quote]>[data-callout-title]:before,[data-callout][data-callout-type=cite]>[data-callout-title]:before{-webkit-mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTMgMjFjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ni0yLjAxNy0yLTJINGMtMS4yNSAwLTIgLjc1LTIgMS45NzJWMTFjMCAxLjI1Ljc1IDIgMiAyYzEgMCAxIDAgMSAxdjFjMCAxLTEgMi0yIDJzLTEgLjAwOC0xIDEuMDMxVjIwYzAgMSAwIDEgMSAxbTEyIDBjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ny0yLjAxNy0yLTJoLTRjLTEuMjUgMC0yIC43NS0yIDEuOTcyVjExYzAgMS4yNS43NSAyIDIgMmguNzVjMCAyLjI1LjI1IDQtMi43NSA0djNjMCAxIDAgMSAxIDEiLz48L3N2Zz4=);mask-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTMgMjFjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ni0yLjAxNy0yLTJINGMtMS4yNSAwLTIgLjc1LTIgMS45NzJWMTFjMCAxLjI1Ljc1IDIgMiAyYzEgMCAxIDAgMSAxdjFjMCAxLTEgMi0yIDJzLTEgLjAwOC0xIDEuMDMxVjIwYzAgMSAwIDEgMSAxbTEyIDBjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ny0yLjAxNy0yLTJoLTRjLTEuMjUgMC0yIC43NS0yIDEuOTcyVjExYzAgMS4yNS43NSAyIDIgMmguNzVjMCAyLjI1LjI1IDQtMi43NSA0djNjMCAxIDAgMSAxIDEiLz48L3N2Zz4=)}[data-callout][data-callout-type=quote]>[data-callout-title]:empty:after{content:"Quote"}[data-callout][data-callout-type=cite]>[data-callout-title]:empty:after{content:"Cite"}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:100;src:url(/_astro/geist-sans-latin-100-normal.CdXtokqn.woff2) format("woff2"),url(/_astro/geist-sans-latin-100-normal.CafeGBe6.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/geist-sans-latin-200-normal.C4oXjfQB.woff2) format("woff2"),url(/_astro/geist-sans-latin-200-normal.CEPp-wnL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/geist-sans-latin-300-normal.C3kkMBb6.woff2) format("woff2"),url(/_astro/geist-sans-latin-300-normal.plFOEHCX.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2) format("woff2"),url(/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-sans-latin-500-normal.uokXdC-Q.woff2) format("woff2"),url(/_astro/geist-sans-latin-500-normal.CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2) format("woff2"),url(/_astro/geist-sans-latin-600-normal.CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/geist-sans-latin-700-normal.BmN9tIp5.woff2) format("woff2"),url(/_astro/geist-sans-latin-700-normal.CjScfYeH.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/geist-sans-latin-800-normal.EH2RlpXL.woff2) format("woff2"),url(/_astro/geist-sans-latin-800-normal.XNjooQKs.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/geist-sans-latin-900-normal.yM37RqPD.woff2) format("woff2"),url(/_astro/geist-sans-latin-900-normal.Bo3O536z.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100;src:url(/_astro/geist-mono-latin-ext-100-normal.BVKGPWYg.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-100-normal.B3p4gFjm.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:100;src:url(/_astro/geist-mono-latin-100-normal.pdI6W8EE.woff2) format("woff2"),url(/_astro/geist-mono-latin-100-normal.Cs_CO32s.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/geist-mono-latin-ext-200-normal.Dbp_NggA.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-200-normal.BIJCT2OM.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:200;src:url(/_astro/geist-mono-latin-200-normal.DrTlUhvP.woff2) format("woff2"),url(/_astro/geist-mono-latin-200-normal.BaLFuLuL.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/geist-mono-latin-ext-300-normal.BegS9ub-.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-300-normal.CGKz-W_l.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/_astro/geist-mono-latin-300-normal.DofeytYw.woff2) format("woff2"),url(/_astro/geist-mono-latin-300-normal.B8Md-uDI.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-ext-400-normal.Cgks_Qgx.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-400-normal.OQZ6AQ_O.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/geist-mono-latin-400-normal.LC9RFr9I.woff2) format("woff2"),url(/_astro/geist-mono-latin-400-normal.B6KKXg2K.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-ext-500-normal.CQcGuCNt.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-500-normal.Co1lQ3sD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/geist-mono-latin-500-normal.D3o2eNa9.woff2) format("woff2"),url(/_astro/geist-mono-latin-500-normal.CYb2qNIo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-mono-latin-ext-600-normal.CJwYYto2.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-600-normal.CqH9tc7D.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/geist-mono-latin-600-normal.DQQBcVN0.woff2) format("woff2"),url(/_astro/geist-mono-latin-600-normal.DGhIk97y.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/geist-mono-latin-ext-700-normal.YOllDaLV.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-700-normal.BrcabMi1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/geist-mono-latin-700-normal.Bdc0xGi4.woff2) format("woff2"),url(/_astro/geist-mono-latin-700-normal.DQd0a4gx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/geist-mono-latin-ext-800-normal.DMXBhGrH.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-800-normal.CIdkPwdR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/geist-mono-latin-800-normal.yoa1kcZw.woff2) format("woff2"),url(/_astro/geist-mono-latin-800-normal.q1l8j2s7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/geist-mono-latin-ext-900-normal.CrmBTzU2.woff2) format("woff2"),url(/_astro/geist-mono-latin-ext-900-normal.1BAWbZUp.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:900;src:url(/_astro/geist-mono-latin-900-normal.Cu5MFKsu.woff2) format("woff2"),url(/_astro/geist-mono-latin-900-normal.B9vGAby6.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD} diff --git a/dist/_astro/geist-mono-latin-100-normal.Cs_CO32s.woff b/dist/_astro/geist-mono-latin-100-normal.Cs_CO32s.woff new file mode 100644 index 0000000..f54f568 Binary files /dev/null and b/dist/_astro/geist-mono-latin-100-normal.Cs_CO32s.woff differ diff --git a/dist/_astro/geist-mono-latin-100-normal.pdI6W8EE.woff2 b/dist/_astro/geist-mono-latin-100-normal.pdI6W8EE.woff2 new file mode 100644 index 0000000..a909d75 Binary files /dev/null and b/dist/_astro/geist-mono-latin-100-normal.pdI6W8EE.woff2 differ diff --git a/dist/_astro/geist-mono-latin-200-normal.BaLFuLuL.woff b/dist/_astro/geist-mono-latin-200-normal.BaLFuLuL.woff new file mode 100644 index 0000000..2ba3759 Binary files /dev/null and b/dist/_astro/geist-mono-latin-200-normal.BaLFuLuL.woff differ diff --git a/dist/_astro/geist-mono-latin-200-normal.DrTlUhvP.woff2 b/dist/_astro/geist-mono-latin-200-normal.DrTlUhvP.woff2 new file mode 100644 index 0000000..4e35da7 Binary files /dev/null and b/dist/_astro/geist-mono-latin-200-normal.DrTlUhvP.woff2 differ diff --git a/dist/_astro/geist-mono-latin-300-normal.B8Md-uDI.woff b/dist/_astro/geist-mono-latin-300-normal.B8Md-uDI.woff new file mode 100644 index 0000000..62b482e Binary files /dev/null and b/dist/_astro/geist-mono-latin-300-normal.B8Md-uDI.woff differ diff --git a/dist/_astro/geist-mono-latin-300-normal.DofeytYw.woff2 b/dist/_astro/geist-mono-latin-300-normal.DofeytYw.woff2 new file mode 100644 index 0000000..61201b8 Binary files /dev/null and b/dist/_astro/geist-mono-latin-300-normal.DofeytYw.woff2 differ diff --git a/dist/_astro/geist-mono-latin-400-normal.B6KKXg2K.woff b/dist/_astro/geist-mono-latin-400-normal.B6KKXg2K.woff new file mode 100644 index 0000000..0770463 Binary files /dev/null and b/dist/_astro/geist-mono-latin-400-normal.B6KKXg2K.woff differ diff --git a/dist/_astro/geist-mono-latin-400-normal.LC9RFr9I.woff2 b/dist/_astro/geist-mono-latin-400-normal.LC9RFr9I.woff2 new file mode 100644 index 0000000..4f11ce2 Binary files /dev/null and b/dist/_astro/geist-mono-latin-400-normal.LC9RFr9I.woff2 differ diff --git a/dist/_astro/geist-mono-latin-500-normal.CYb2qNIo.woff b/dist/_astro/geist-mono-latin-500-normal.CYb2qNIo.woff new file mode 100644 index 0000000..3de8a5e Binary files /dev/null and b/dist/_astro/geist-mono-latin-500-normal.CYb2qNIo.woff differ diff --git a/dist/_astro/geist-mono-latin-500-normal.D3o2eNa9.woff2 b/dist/_astro/geist-mono-latin-500-normal.D3o2eNa9.woff2 new file mode 100644 index 0000000..1e370b5 Binary files /dev/null and b/dist/_astro/geist-mono-latin-500-normal.D3o2eNa9.woff2 differ diff --git a/dist/_astro/geist-mono-latin-600-normal.DGhIk97y.woff b/dist/_astro/geist-mono-latin-600-normal.DGhIk97y.woff new file mode 100644 index 0000000..c1c447c Binary files /dev/null and b/dist/_astro/geist-mono-latin-600-normal.DGhIk97y.woff differ diff --git a/dist/_astro/geist-mono-latin-600-normal.DQQBcVN0.woff2 b/dist/_astro/geist-mono-latin-600-normal.DQQBcVN0.woff2 new file mode 100644 index 0000000..89a5527 Binary files /dev/null and b/dist/_astro/geist-mono-latin-600-normal.DQQBcVN0.woff2 differ diff --git a/dist/_astro/geist-mono-latin-700-normal.Bdc0xGi4.woff2 b/dist/_astro/geist-mono-latin-700-normal.Bdc0xGi4.woff2 new file mode 100644 index 0000000..5497fbf Binary files /dev/null and b/dist/_astro/geist-mono-latin-700-normal.Bdc0xGi4.woff2 differ diff --git a/dist/_astro/geist-mono-latin-700-normal.DQd0a4gx.woff b/dist/_astro/geist-mono-latin-700-normal.DQd0a4gx.woff new file mode 100644 index 0000000..fe45cbc Binary files /dev/null and b/dist/_astro/geist-mono-latin-700-normal.DQd0a4gx.woff differ diff --git a/dist/_astro/geist-mono-latin-800-normal.q1l8j2s7.woff b/dist/_astro/geist-mono-latin-800-normal.q1l8j2s7.woff new file mode 100644 index 0000000..7143aef Binary files /dev/null and b/dist/_astro/geist-mono-latin-800-normal.q1l8j2s7.woff differ diff --git a/dist/_astro/geist-mono-latin-800-normal.yoa1kcZw.woff2 b/dist/_astro/geist-mono-latin-800-normal.yoa1kcZw.woff2 new file mode 100644 index 0000000..825bbb7 Binary files /dev/null and b/dist/_astro/geist-mono-latin-800-normal.yoa1kcZw.woff2 differ diff --git a/dist/_astro/geist-mono-latin-900-normal.B9vGAby6.woff b/dist/_astro/geist-mono-latin-900-normal.B9vGAby6.woff new file mode 100644 index 0000000..d6946b3 Binary files /dev/null and b/dist/_astro/geist-mono-latin-900-normal.B9vGAby6.woff differ diff --git a/dist/_astro/geist-mono-latin-900-normal.Cu5MFKsu.woff2 b/dist/_astro/geist-mono-latin-900-normal.Cu5MFKsu.woff2 new file mode 100644 index 0000000..7468fec Binary files /dev/null and b/dist/_astro/geist-mono-latin-900-normal.Cu5MFKsu.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-100-normal.B3p4gFjm.woff b/dist/_astro/geist-mono-latin-ext-100-normal.B3p4gFjm.woff new file mode 100644 index 0000000..cd0cf65 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-100-normal.B3p4gFjm.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-100-normal.BVKGPWYg.woff2 b/dist/_astro/geist-mono-latin-ext-100-normal.BVKGPWYg.woff2 new file mode 100644 index 0000000..b23e6bf Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-100-normal.BVKGPWYg.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-200-normal.BIJCT2OM.woff b/dist/_astro/geist-mono-latin-ext-200-normal.BIJCT2OM.woff new file mode 100644 index 0000000..1f94b19 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-200-normal.BIJCT2OM.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-200-normal.Dbp_NggA.woff2 b/dist/_astro/geist-mono-latin-ext-200-normal.Dbp_NggA.woff2 new file mode 100644 index 0000000..87298c1 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-200-normal.Dbp_NggA.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-300-normal.BegS9ub-.woff2 b/dist/_astro/geist-mono-latin-ext-300-normal.BegS9ub-.woff2 new file mode 100644 index 0000000..14da212 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-300-normal.BegS9ub-.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-300-normal.CGKz-W_l.woff b/dist/_astro/geist-mono-latin-ext-300-normal.CGKz-W_l.woff new file mode 100644 index 0000000..4c81c5b Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-300-normal.CGKz-W_l.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-400-normal.Cgks_Qgx.woff2 b/dist/_astro/geist-mono-latin-ext-400-normal.Cgks_Qgx.woff2 new file mode 100644 index 0000000..91f6df2 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-400-normal.Cgks_Qgx.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-400-normal.OQZ6AQ_O.woff b/dist/_astro/geist-mono-latin-ext-400-normal.OQZ6AQ_O.woff new file mode 100644 index 0000000..0278350 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-400-normal.OQZ6AQ_O.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-500-normal.CQcGuCNt.woff2 b/dist/_astro/geist-mono-latin-ext-500-normal.CQcGuCNt.woff2 new file mode 100644 index 0000000..bd10e5d Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-500-normal.CQcGuCNt.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-500-normal.Co1lQ3sD.woff b/dist/_astro/geist-mono-latin-ext-500-normal.Co1lQ3sD.woff new file mode 100644 index 0000000..c1204f6 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-500-normal.Co1lQ3sD.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-600-normal.CJwYYto2.woff2 b/dist/_astro/geist-mono-latin-ext-600-normal.CJwYYto2.woff2 new file mode 100644 index 0000000..49e0b1a Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-600-normal.CJwYYto2.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-600-normal.CqH9tc7D.woff b/dist/_astro/geist-mono-latin-ext-600-normal.CqH9tc7D.woff new file mode 100644 index 0000000..f47eb81 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-600-normal.CqH9tc7D.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-700-normal.BrcabMi1.woff b/dist/_astro/geist-mono-latin-ext-700-normal.BrcabMi1.woff new file mode 100644 index 0000000..3e5cf52 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-700-normal.BrcabMi1.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-700-normal.YOllDaLV.woff2 b/dist/_astro/geist-mono-latin-ext-700-normal.YOllDaLV.woff2 new file mode 100644 index 0000000..1c18858 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-700-normal.YOllDaLV.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-800-normal.CIdkPwdR.woff b/dist/_astro/geist-mono-latin-ext-800-normal.CIdkPwdR.woff new file mode 100644 index 0000000..6ba7de7 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-800-normal.CIdkPwdR.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-800-normal.DMXBhGrH.woff2 b/dist/_astro/geist-mono-latin-ext-800-normal.DMXBhGrH.woff2 new file mode 100644 index 0000000..de87c6d Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-800-normal.DMXBhGrH.woff2 differ diff --git a/dist/_astro/geist-mono-latin-ext-900-normal.1BAWbZUp.woff b/dist/_astro/geist-mono-latin-ext-900-normal.1BAWbZUp.woff new file mode 100644 index 0000000..e347c1d Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-900-normal.1BAWbZUp.woff differ diff --git a/dist/_astro/geist-mono-latin-ext-900-normal.CrmBTzU2.woff2 b/dist/_astro/geist-mono-latin-ext-900-normal.CrmBTzU2.woff2 new file mode 100644 index 0000000..d7d0941 Binary files /dev/null and b/dist/_astro/geist-mono-latin-ext-900-normal.CrmBTzU2.woff2 differ diff --git a/dist/_astro/geist-sans-latin-100-normal.CafeGBe6.woff b/dist/_astro/geist-sans-latin-100-normal.CafeGBe6.woff new file mode 100644 index 0000000..3a38592 Binary files /dev/null and b/dist/_astro/geist-sans-latin-100-normal.CafeGBe6.woff differ diff --git a/dist/_astro/geist-sans-latin-100-normal.CdXtokqn.woff2 b/dist/_astro/geist-sans-latin-100-normal.CdXtokqn.woff2 new file mode 100644 index 0000000..b85f14f Binary files /dev/null and b/dist/_astro/geist-sans-latin-100-normal.CdXtokqn.woff2 differ diff --git a/dist/_astro/geist-sans-latin-200-normal.C4oXjfQB.woff2 b/dist/_astro/geist-sans-latin-200-normal.C4oXjfQB.woff2 new file mode 100644 index 0000000..97c00ce Binary files /dev/null and b/dist/_astro/geist-sans-latin-200-normal.C4oXjfQB.woff2 differ diff --git a/dist/_astro/geist-sans-latin-200-normal.CEPp-wnL.woff b/dist/_astro/geist-sans-latin-200-normal.CEPp-wnL.woff new file mode 100644 index 0000000..3953dab Binary files /dev/null and b/dist/_astro/geist-sans-latin-200-normal.CEPp-wnL.woff differ diff --git a/dist/_astro/geist-sans-latin-300-normal.C3kkMBb6.woff2 b/dist/_astro/geist-sans-latin-300-normal.C3kkMBb6.woff2 new file mode 100644 index 0000000..3fb925b Binary files /dev/null and b/dist/_astro/geist-sans-latin-300-normal.C3kkMBb6.woff2 differ diff --git a/dist/_astro/geist-sans-latin-300-normal.plFOEHCX.woff b/dist/_astro/geist-sans-latin-300-normal.plFOEHCX.woff new file mode 100644 index 0000000..d5d3015 Binary files /dev/null and b/dist/_astro/geist-sans-latin-300-normal.plFOEHCX.woff differ diff --git a/dist/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff b/dist/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff new file mode 100644 index 0000000..4635ea6 Binary files /dev/null and b/dist/_astro/geist-sans-latin-400-normal.BOaIZNA2.woff differ diff --git a/dist/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2 b/dist/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2 new file mode 100644 index 0000000..9867e87 Binary files /dev/null and b/dist/_astro/geist-sans-latin-400-normal.gapTbOY8.woff2 differ diff --git a/dist/_astro/geist-sans-latin-500-normal.CN2lyvyL.woff b/dist/_astro/geist-sans-latin-500-normal.CN2lyvyL.woff new file mode 100644 index 0000000..80acac1 Binary files /dev/null and b/dist/_astro/geist-sans-latin-500-normal.CN2lyvyL.woff differ diff --git a/dist/_astro/geist-sans-latin-500-normal.uokXdC-Q.woff2 b/dist/_astro/geist-sans-latin-500-normal.uokXdC-Q.woff2 new file mode 100644 index 0000000..f6ee691 Binary files /dev/null and b/dist/_astro/geist-sans-latin-500-normal.uokXdC-Q.woff2 differ diff --git a/dist/_astro/geist-sans-latin-600-normal.CA1yjETN.woff b/dist/_astro/geist-sans-latin-600-normal.CA1yjETN.woff new file mode 100644 index 0000000..f5d9af0 Binary files /dev/null and b/dist/_astro/geist-sans-latin-600-normal.CA1yjETN.woff differ diff --git a/dist/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2 b/dist/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2 new file mode 100644 index 0000000..416789f Binary files /dev/null and b/dist/_astro/geist-sans-latin-600-normal.DFOURf8L.woff2 differ diff --git a/dist/_astro/geist-sans-latin-700-normal.BmN9tIp5.woff2 b/dist/_astro/geist-sans-latin-700-normal.BmN9tIp5.woff2 new file mode 100644 index 0000000..92a4ed5 Binary files /dev/null and b/dist/_astro/geist-sans-latin-700-normal.BmN9tIp5.woff2 differ diff --git a/dist/_astro/geist-sans-latin-700-normal.CjScfYeH.woff b/dist/_astro/geist-sans-latin-700-normal.CjScfYeH.woff new file mode 100644 index 0000000..a3c1774 Binary files /dev/null and b/dist/_astro/geist-sans-latin-700-normal.CjScfYeH.woff differ diff --git a/dist/_astro/geist-sans-latin-800-normal.EH2RlpXL.woff2 b/dist/_astro/geist-sans-latin-800-normal.EH2RlpXL.woff2 new file mode 100644 index 0000000..6b6f14a Binary files /dev/null and b/dist/_astro/geist-sans-latin-800-normal.EH2RlpXL.woff2 differ diff --git a/dist/_astro/geist-sans-latin-800-normal.XNjooQKs.woff b/dist/_astro/geist-sans-latin-800-normal.XNjooQKs.woff new file mode 100644 index 0000000..b33e03f Binary files /dev/null and b/dist/_astro/geist-sans-latin-800-normal.XNjooQKs.woff differ diff --git a/dist/_astro/geist-sans-latin-900-normal.Bo3O536z.woff b/dist/_astro/geist-sans-latin-900-normal.Bo3O536z.woff new file mode 100644 index 0000000..cdbf14a Binary files /dev/null and b/dist/_astro/geist-sans-latin-900-normal.Bo3O536z.woff differ diff --git a/dist/_astro/geist-sans-latin-900-normal.yM37RqPD.woff2 b/dist/_astro/geist-sans-latin-900-normal.yM37RqPD.woff2 new file mode 100644 index 0000000..262fcc8 Binary files /dev/null and b/dist/_astro/geist-sans-latin-900-normal.yM37RqPD.woff2 differ diff --git a/dist/artix-install-guide/index.html b/dist/artix-install-guide/index.html new file mode 100644 index 0000000..ad06dd7 --- /dev/null +++ b/dist/artix-install-guide/index.html @@ -0,0 +1,713 @@ + Artix Linux install guide | z0x +
+• +
10 min read

Artix Linux install guide

Table of Contents

+

Introduction

+

The goal of this guide is to set up a minimal installation of Artix Linux with OpenRC as an init system and full disk encryption on an UEFI or BIOS system. This guide is meant to be read alongside the wiki’s.

+
+

Acquire an installation image

+
    +
  1. Go to the downloads page https://artixlinux.org/download.php
  2. +
  3. Scroll down to the Official ISO images section.
  4. +
  5. Under the base section, download the file starting with artix-base-openrc and ending with .iso
  6. +
+
+

Prepare an installation medium

+

Windows

+

Use Rufus, here is a guide if you need it.

+

Linux

+
    +
  1. Insert a USB flash drive into your PC with at least 2 GB of space available on it.
  2. +
  3. Find the corresponding block device for the flash drive in /dev folder. Usually it is /dev/sdb.
  4. +
  5. Burn the image to the flash drive (assuming your flash drive is /dev/sdb and that your terminal is opened in the directory of the image)
  6. +
+
sudo dd bs=4M if=./artix-base-openrc-YYYY.MM.DD-x86_64.iso of=/dev/sdb conv=fsync oflag=direct status=progress
+
+

Boot the live environment

+
+
Info
+
+

Artix Linux installation images do not support Secure Boot. You will need to disable Secure Boot to boot the installation medium.

+
+
+
    +
  1. Power off your PC.
  2. +
  3. Insert the flash drive into the computer on which you are installing Artix Linux.
  4. +
  5. Power on your PC and press boot menu key.
  6. +
  7. Boot the installation medium.
  8. +
+
+

Enter the live environment

+
    +
  1. Login with the default credentials.
  2. +
+
    +
  • Username: artix
  • +
  • Password: artix
  • +
+
    +
  1. Switch to the root user
  2. +
+
+
Note
+
+

When encountering a code block as below throughout this guide, execute the commands within it directly in the terminal.

+
+
+
+
Info
+
+

When prompted for a password, enter artix

+
+
+
su -
+
+

Connect to the internet

+

Via Ethernet

+

Connect the computer via an Ethernet cable

+

Via WiFi

+
sudo rfkill unblock wifi
+sudo ip link set wlan0 up
+connmanctl
+
+
Tip
+
+

Network names can be tab-completed.

+
+
+
agent on
+scan wifi
+services
+
+
Example
+
+

connect wifi_dc85de828967_38303944616e69656c73_managed_psk

+
+
+
connect {WiFi name} 
+quit
+

Verify internet connectivity

+

Check for internet

+
ping artixlinux.org
+
+

Update the system clock

+

Activate the NTP daemon to synchronize the computer’s real-time clock:

+
rc-service ntpd start
+
+

Partition the disk

+
    +
  1. Install gdisk.
  2. +
+
pacman -Sy gdisk
+
    +
  1. Partition your drive. You can find your drive name using the lsblk command.
  2. +
+
+
Note
+
+

I will be using nvme0n1 as my drive throughout this guide, please adapt it to your disk name. +If you have an hdd, your drive name may ressemble something like sda.

+
+
+
gdisk /dev/nvme0n1
+
    +
  1. Delete any existing partitions
  2. +
+
Command (m for help): d
+
    +
  1. Create a boot partition
  2. +
+
Command (m for help): n
+Partition number (1-128, default 1):
+First sector (...):
+Last sector (...): +512M
+Hex code or GUID (...): ef00
+
    +
  1. Create a root partition
  2. +
+
Command (m for help): n
+Partition number (2-128, default 1):
+First sector (...):
+Last sector (...):
+Hex code or GUID (...): 8300
+
    +
  1. Save the changes
  2. +
+
Command (m for help): w
+Do you want to proceed? (Y/N): y
+
    +
  1. Verify partitioning
  2. +
+
lsblk
+
+
Note
+
+

It should look something like this:

+
+
+
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
+nvme0n1     259:0    0 465,8G  0 disk
+├─nvme0n1p1 259:1    0   512M  0 part
+└─nvme0n1p2 259:2    0 465,3G  0 part
+
+

Encrypt root partition

+
    +
  1. Encrypt your root partition.
  2. +
+
+
Tip
+
+

Make sure to to enter a secure passphrase and to write it down in a secure place as you will not be able to change it later

+
+
+
cryptsetup luksFormat /dev/nvme0n1p2
+Are you sure (Type `yes` in capital letters): YES
+
    +
  1. Open the encrypted partition
  2. +
+
cryptsetup open /dev/nvme0n1p2 root
+
+

Create file systems

+
    +
  1. Create the boot file system
  2. +
+
mkfs.fat -F32 /dev/nvme0n1p1
+
    +
  1. Create the root file system
  2. +
+
mkfs.ext4 /dev/mapper/root
+
+

Mount file systems

+
    +
  1. Mount the root file system
  2. +
+
mount /dev/mapper/root /mnt
+
    +
  1. Mount the boot file system
  2. +
+
mount -m /dev/nvme0n1p1 /mnt/boot
+
    +
  1. Verify mounting
  2. +
+
lsblk
+
+
Note
+
+

It should look something like this:

+
+
+
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
+nvme0n1     259:0    0 465,8G  0 disk  
+├─nvme0n1p1 259:1    0   512M  0 part  /mnt/boot
+└─nvme0n1p2 259:2    0 465,3G  0 part  
+  └─root    254:0    0 465,2G  0 crypt /mnt
+
+

Install Essentials

+

Install the base system, kernel, init system and other essential packages.

+
basestrap /mnt base linux linux-firmware openrc elogind-openrc cryptsetup cryptsetup-openrc efibootmgr doas nano
+
+
Note
+
+

Install AMD or Intel microcode, depending on your system’s CPU

+
+
+

AMD CPU

+

Install AMD CPU microcode updates

+
basestrap /mnt amd-ucode
+

Intel CPU

+

Install Intel CPU microcode updates

+
basestrap /mnt intel-ucode
+

Network stack

+
basestrap /mnt wpa_supplicant networkmanager networkmanager-openrc iwd iwd-openrc
+rc-update add NetworkManager
+rc-update add iwd
+
+cat << EOF >> /etc/NetworkManager/conf.d/wifi_backend.conf
+[device]
+wifi.backend=iwd
+EOF
+

MAC randomization

+
+
Info
+
+

MAC randomization can be used for increased privacy by not disclosing your real MAC address to the WiFi network.

+
+
+
cat << EOF >> /etc/NetworkManager/conf.d/00-macrandomize.conf
+[device-mac-randomization]
+wifi.scan-rand-mac-address=yes
+
+[connection-mac-randomization]
+ethernet.cloned-mac-address=random
+wifi.cloned-mac-address=random
+EOF
+
+

Generate File System Table

+
fstabgen -U /mnt >> /mnt/etc/fstab
+
+

Switch to New Installation

+
artix-chroot /mnt bash
+
+

Localization

+

Set the locale

+
+
Note
+
+

Feel free to change en_DK.UTF-8 to your preferred locale such as en_US.UTF-8 or en_GB.UTF-8

+
+
+
    +
  1. Un-comment en_DK.UTF-8
  2. +
+
nano /etc/locale.gen
+
    +
  1. Generate locales.
  2. +
+
locale-gen
+echo 'LANG=en_DK.UTF-8' > /etc/locale.conf
+
+

Set the time zone

+
+
Example
+
+

ln -sf /usr/share/zoneinfo/America/Toronto /etc/localtime

+
+
+
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
+
+

Set hardware clock from system clock

+
hwclock --systohc
+
+

Hostname and Host

+
+
Note
+
+

Change artix to your desired hostname in all of the following commands

+
+
+
echo 'artix' > /etc/hostname
+
    +
  1. Edit /etc/conf.d/hostname
  2. +
+
nano /etc/conf.d/hostname
+
    +
  1. +

    Replace hostname="localhost" with hostname="artix"

    +
  2. +
  3. +

    Edit /etc/hosts

    +
  4. +
+
nano /etc/hosts
+
    +
  1. Add the following:
  2. +
+
127.0.0.1     localhost
+::1           localhost
+127.0.1.1     artix.localdomain        artix
+
+

Initramfs

+
    +
  1. Edit /etc/mkinitcpio.conf
  2. +
+
nano /etc/mkinitcpio.conf
+
    +
  1. In the HOOKS array, add encrypt between block and filesystems
  2. +
+
mkinitcpio -P
+
+
Note
+
+

It should look something like this:

+
+
+
HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block encrypt filesystems fsck)
+
+

Add a user

+
    +
  1. Set the root password.
  2. +
+
passwd
+
    +
  1. Create a user and set his password.
  2. +
+
+
Tip
+
+

Change artix to your desired username

+
+
+
useradd -m artix
+passwd artix
+
+

Configure doas

+
    +
  1. Create the config file.
  2. +
+
touch /etc/doas.conf
+chown -c root:root /etc/doas.conf
+chmod -c 0400 /etc/doas.conf
+
    +
  1. Edit /etc/doas.conf
  2. +
+
nano /etc/doas.conf
+
    +
  1. Add the following:
  2. +
+
permit artix as root
+permit nopass artix as root cmd pacman
+
+

Boot Loader

+

Check for UEFI support

+
+
Tip
+
+

If you see a bunch of files listed, use EFISTUB. +If you do not see a bunch of files listed, your system does not support UEFI and you should use GRUB.

+
+
+
ls /sys/firmware/efi/efivars
+

EFISTUB

+
    +
  1. Get the UUID of your root partition.
  2. +
+
blkid -s UUID -o value /dev/nvme0n1p2
+
    +
  1. Create a boot entry
  2. +
+
+
Tip
+
+

Replace xxxx with the UUID that you obtained earlier. +Replace intel-ucode.img with amd-ucode.img if you have an AMD CPU

+
+
+
efibootmgr -c -d /dev/nvme0n1 -p 1 -l /vmlinuz-linux -L "Artix" -u "cryptdevice=UUID=xxxx:root root=/dev/mapper/root rw initrd=\intel-ucode.img initrd=\initramfs-linux.img loglevel=3 quiet"
+

GRUB

+
    +
  1. Install grub on your boot partition
  2. +
+
pacman -S grub
+grub-install /dev/sda
+
    +
  1. Get the UUID of your root partition.
  2. +
+
blkid -s UUID -o value /dev/nvme0n1p2
+
    +
  1. Edit /etc/default/grub
  2. +
+
nano /etc/default/grub
+
    +
  1. Add the following to the GRUB_CMDLINE_LINUX line, where xxxx is the UUID that you obtained earlier.
  2. +
+
cryptdevice=UUID=xxxx:root root=/dev/mapper/root
+
+
Note
+
+

It should look something like this:

+
+
+
GRUB_CMDLINE_LINUX="cryptdevice=UUID=550e8400-e29b-41d4-a716-446655440000:root root=/dev/mapper/root"
+
    +
  1. +

    Un-comment #GRUB_ENABLE_CRYPTODISK=y

    +
  2. +
  3. +

    Generate the config file.

    +
  4. +
+
grub-mkconfig -o /boot/grub/grub.cfg
+
+

Reboot

+
    +
  1. You can reboot and enter into your new installation.
  2. +
+
exit
+umount -R /mnt
+reboot now
+
+
Note
+
+

Unplug your flash drive after the screen turns black.

+
+
+
+

Post install

+

You will now be greeted with a similar screen as when you first booted from the flash drive. +Login using the credentials that you set, if you followed the example your username would be artix.

+

Add arch repositories and sort for fastest mirrors

+

Add arch extra repository

+
    +
  1. Install packages
  2. +
+
doas pacman -Syu artix-archlinux-support curl
+doas pacman-key --populate archlinux
+doas sh -c "curl https://archlinux.org/mirrorlist/all -o /etc/pacman.d/mirrorlist-arch"
+
    +
  1. Edit /etc/pacman.d/mirrorlist-arch
  2. +
+
doas nano /etc/pacman.d/mirrorlist-arch
+
    +
  1. +

    Un-comment the first server entries under the worldwide section

    +
  2. +
  3. +

    Edit /etc/pacman.conf

    +
  4. +
+
doas nano /etc/pacman.conf
+
    +
  1. Add the following to the bottom of the file
  2. +
+
##Arch
+[extra]
+Include = /etc/pacman.d/mirrorlist-arch
+
+##[multilib]
+##Include = /etc/pacman.d/mirrorlist-arch
+

Sort for fastest mirrors

+
doas pacman -Syu reflector pacman-contrib
+doas reflector --verbose -p https -l 30 -f 5 --sort rate --save /etc/pacman.d/mirrorlist-arch
+doas sh -c "curl https://gitea.artixlinux.org/packages/artix-mirrorlist/raw/branch/master/mirrorlist -o /etc/pacman.d/mirrorlist.bak"
+doas sh -c "rankmirrors -v -n 5 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist"
+

AUR

+

Install Paru

+
doas pacman -S --needed base-devel
+git clone https://aur.archlinux.org/paru.git
+cd paru
+makepkg -si
+cd ..
+rm -rf paru
+

Replace sudo with doas

+
doas pacman -Rdd sudo
+doas ln -s /usr/bin/doas /usr/bin/sudo
+

Laptop power profiles

+

Install and enable the powerprofiles daemon

+
doas pacman -S power-profiles-daemon power-profiles-daemon-openrc
+doas rc-update add power-profiles-daemon
+doas rc-service power-profiles-daemon start
+

Add swap

+
doas fallocate -l 4G /swapfile
+doas chmod 600 /swapfile
+daos mkswap /swapfile
+doas swapon /swapfile
+doas cp /etc/fstab /etc/fstab.bak
+echo '/swapfile none swap sw 0 0' | doas tee -a /etc/fstab
+

Auto-mount an external LUKS encrypted drive

+
doas fdisk /dev/sdb
+>g, n, w
+
+doas cryptsetup luksFormat /dev/sdb1
+doas cryptsetup luksOpen /dev/sdb1 hdd1
+doas mkfs.ext4 /dev/mapper/hdd1
+doas mkdir /mnt/hdd1
+doas mount /dev/mapper/hdd1 /mnt/hdd1
+doas chown vega:vega /mnt/hdd1
+doas dd if=/dev/urandom of=/root/keyfile_hdd1 bs=512 count=4
+doas chmod 0400 /root/keyfile_hdd1
+doas cryptsetup luksAddKey /dev/sdb1 /root/keyfile_hdd1
+UUID=$(doas blkid -s UUID -o value /dev/sdb1)
+
+doas sh -c "cat << EOF >> /etc/conf.d/dmcrypt
+target=hdd1
+source=UUID='$UUID'
+key=/root/keyfile_hdd1
+wait=2
+EOF"
+
+doas rc-update add dmcrypt boot
+doas reboot
\ No newline at end of file diff --git a/dist/favicon.svg b/dist/favicon.svg new file mode 100644 index 0000000..63d5f6d --- /dev/null +++ b/dist/favicon.svg @@ -0,0 +1,55 @@ + + + + diff --git a/dist/index.html b/dist/index.html new file mode 100644 index 0000000..700b8e9 --- /dev/null +++ b/dist/index.html @@ -0,0 +1,195 @@ + blog | z0x +
\ No newline at end of file diff --git a/dist/rss.xml b/dist/rss.xml new file mode 100644 index 0000000..95037c5 --- /dev/null +++ b/dist/rss.xml @@ -0,0 +1 @@ +z0xz0x's bloghttps://blog.z0x.ca/Artix Linux install guidehttps://blog.z0x.ca/artix-install-guide/https://blog.z0x.ca/artix-install-guide/Guide to installing Artix Linux with OpenRC and full disk encryption for UEFI and BIOS systems.Tue, 07 Jan 2025 00:00:00 GMT \ No newline at end of file diff --git a/dist/sitemap-0.xml b/dist/sitemap-0.xml new file mode 100644 index 0000000..c0e9af3 --- /dev/null +++ b/dist/sitemap-0.xml @@ -0,0 +1 @@ +https://blog.z0x.ca/https://blog.z0x.ca/artix-install-guide/ \ No newline at end of file diff --git a/dist/sitemap-index.xml b/dist/sitemap-index.xml new file mode 100644 index 0000000..2ca2e2a --- /dev/null +++ b/dist/sitemap-index.xml @@ -0,0 +1 @@ +https://blog.z0x.ca/sitemap-0.xml \ No newline at end of file