pre.shiki{width:100%;padding:1.5rem;position:relative;margin:2rem 0;overflow:auto;border:1px solid var(--code-border)}[data-remark-code-title=true]{padding:.75rem 1.5rem;background-color:var(--code-bg);border:1px solid var(--code-border);border-bottom:none;margin:2rem 0 -2rem;font-family:dm,PT Mono,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}pre.shiki code{font-size:1.1rem;font-family:dm,PT Mono,Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}html.no-js pre.shiki button.copy{display:none}:root{--shiki-dark-bg: var(--card) !important}@media (prefers-color-scheme: dark){html.no-js .shiki,html.no-js .shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}:root[data-dark=true] .shiki,:root[data-dark=true] .shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}pre.shiki button.copy:focus{position:absolute;width:auto;height:auto;right:16px;top:16px;left:auto}pre.shiki:hover button.copy{position:absolute;width:auto;height:auto;right:16px;top:16px;left:auto}pre.shiki button.copy{padding:7px 14px;background-color:transparent;border:1px solid var(--code-border);font-weight:400;font-family:Visby,Arial,Helvetica,sans-serif;font-size:.875rem;position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;cursor:pointer}pre.shiki button.copy span.ready,pre.shiki button.copy span.success{background-color:transparent!important}pre.shiki button.copy .ready:before{content:"Copy"}pre.shiki button.copy .success{display:none}pre.shiki button.copy .success:before{content:"Copied!"}pre.shiki button.copy.copied{background-color:var(--code-border)}pre.shiki button.copy.copied .success{display:block}pre.shiki button.copy.copied .ready{display:none}.waves-wrapper[data-route="/blog/[slug]"]{padding-bottom:50vh!important}@media (min-width: 1200px){.waves-wrapper[data-route="/blog/[slug]"]{padding-bottom:50vh!important}}@keyframes svelte-1noptry-progress{0%{width:0}to{width:100%}}.progress.svelte-1noptry{position:fixed;top:0;z-index:100;left:0;width:100%;height:5px}@supports not (animation-timeline: --post-content){.progress.svelte-1noptry{display:none}}.progress.svelte-1noptry .value:where(.svelte-1noptry){background-image:linear-gradient(-90deg,var(--purple) 0%,var(--purple2) 100%);height:5px;width:0;animation:linear both svelte-1noptry-progress;animation-timeline:--post-content;animation-range:exit-crossing 0% contain 100%}.wrapper.svelte-1noptry{margin-top:-40vh;position:relative;view-timeline:--post-content}@media (min-width: 1200px){.wrapper.svelte-1noptry{margin-top:-35vh!important}}.toc.svelte-1noptry h2:where(.svelte-1noptry){margin:0 0 .625rem!important;font-size:1.25rem!important}.toc.svelte-1noptry ol:where(.svelte-1noptry){margin:0;padding:0!important;list-style-position:inside}.toc.svelte-1noptry ol:where(.svelte-1noptry) li:where(.svelte-1noptry){font-size:1.125rem;margin-bottom:5px;opacity:.8;font-weight:500}.toc.svelte-1noptry ol:where(.svelte-1noptry) li:where(.svelte-1noptry):hover{opacity:1}.toc.svelte-1noptry ol:where(.svelte-1noptry) li:where(.svelte-1noptry) a:where(.svelte-1noptry){text-decoration:none}.inner.svelte-1noptry{display:grid;position:relative}@media (min-width: 1200px){.inner.svelte-1noptry{grid-template-columns:3fr 1fr;gap:60px}}.inner.svelte-1noptry aside.toc:where(.svelte-1noptry){order:2;z-index:10;padding-top:100px;flex:1;display:none;margin-bottom:7.5rem}@media (min-width: 1200px){.inner.svelte-1noptry aside.toc:where(.svelte-1noptry){display:block}}.inner.svelte-1noptry aside.toc:where(.svelte-1noptry) .stick:where(.svelte-1noptry){position:sticky;top:2rem}.inner.svelte-1noptry aside.toc:where(.svelte-1noptry) .stick:where(.svelte-1noptry) .scroll:where(.svelte-1noptry){padding:1rem;overflow:auto;max-height:90vh}.inner.svelte-1noptry aside.toc:where(.svelte-1noptry) .stick:where(.svelte-1noptry) .card{padding:0}.post-content.svelte-1noptry{padding:0 0 3.75rem}.post-content.svelte-1noptry .toc:where(.svelte-1noptry){margin-bottom:2.5rem}@media (min-width: 1200px){.post-content.svelte-1noptry .toc:where(.svelte-1noptry){display:none}}.post-content.svelte-1noptry h1,.post-content.svelte-1noptry h2,.post-content.svelte-1noptry h3,.post-content.svelte-1noptry h4,.post-content.svelte-1noptry h5,.post-content.svelte-1noptry h6{font-weight:700}.post-content.svelte-1noptry h1:hover a.anchor,.post-content.svelte-1noptry h2:hover a.anchor,.post-content.svelte-1noptry h3:hover a.anchor,.post-content.svelte-1noptry h4:hover a.anchor,.post-content.svelte-1noptry h5:hover a.anchor,.post-content.svelte-1noptry h6:hover a.anchor{display:inline-block;position:relative;width:auto;height:auto;left:auto;overflow:visible}.post-content.svelte-1noptry .card{padding:1.25rem;font-size:1.1875rem;margin:1.875rem 0}.post-content.svelte-1noptry img{max-width:100%;margin:3rem 0;display:block}.post-content.svelte-1noptry iframe{max-width:100%;margin:3rem 0}.post-content.svelte-1noptry h2{margin:5rem 0 1.5625rem;text-decoration:underline;text-decoration-color:var(--purple)}.post-content.svelte-1noptry p{font-size:1.21875rem;margin:1.25rem 0}.post-content.svelte-1noptry a.anchor{width:30px;text-align:center;margin-right:10px;position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.post-content.svelte-1noptry a.anchor:focus{display:inline-block;position:relative;width:auto;height:auto;left:auto;overflow:visible}.post-content.svelte-1noptry a.anchor svg{width:23px;height:23px}.post-content.svelte-1noptry a.anchor svg path{fill:var(--text)}.post-content.svelte-1noptry b,.post-content.svelte-1noptry strong,.post-content.svelte-1noptry strong a,.post-content.svelte-1noptry .custom-block.lead-p p a{font-weight:600}.post-content.svelte-1noptry .custom-block.lead-p p{font-size:1.3125rem;margin-bottom:3.75rem;font-weight:500;display:block}.post-content.svelte-1noptry ul,.post-content.svelte-1noptry ol{padding:0;padding-left:1.5625rem;font-size:1.21875rem;margin:1.25rem 0}.post-content.svelte-1noptry ul li,.post-content.svelte-1noptry ol li{margin-bottom:.625rem}.content.svelte-1noptry{min-width:0}.content.svelte-1noptry header:where(.svelte-1noptry){max-width:900px;margin-bottom:5rem}.content.svelte-1noptry header:where(.svelte-1noptry) h1:where(.svelte-1noptry){font-size:max(1.5rem + 1.8vw,2.4rem);font-weight:800;margin-bottom:1.25rem}.content.svelte-1noptry header:where(.svelte-1noptry) .info:where(.svelte-1noptry){font-size:1.125rem;font-weight:500;margin-bottom:.9375rem;opacity:.86}.content.svelte-1noptry header:where(.svelte-1noptry) .info:where(.svelte-1noptry) p:where(.svelte-1noptry){margin:0;font-size:inherit;display:inline-block}.content.svelte-1noptry header:where(.svelte-1noptry) .info:where(.svelte-1noptry) p:where(.svelte-1noptry):before{content:"|";margin:0 .7rem}.tags.svelte-1noptry{margin:0;padding:0;margin-top:3.125rem;list-style:none}.tags.svelte-1noptry li:where(.svelte-1noptry){display:inline-block;margin-right:.625rem;margin-bottom:.625rem;font-size:.9375rem}.tags.svelte-1noptry li:where(.svelte-1noptry) a:where(.svelte-1noptry){background:linear-gradient(-90deg,#c11dd4,#8c44db);color:#fff;padding:.3125rem .625rem}.tags.svelte-1noptry li:where(.svelte-1noptry) a:where(.svelte-1noptry):focus{outline-color:var(--op-bg)}#post-footer.svelte-1noptry{padding:0 0 7.5rem}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry){display:flex;flex-direction:column;font-size:1.125rem;justify-content:space-between}@media (min-width: 768px){#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry){flex-direction:row;align-items:center}}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .tags-wrap:where(.svelte-1noptry){font-weight:600;margin-bottom:1.25rem}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .tags-wrap:where(.svelte-1noptry) p:where(.svelte-1noptry){margin-top:0;margin-bottom:1rem;font-size:1.125rem}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .tags-wrap:where(.svelte-1noptry) ul.tags:where(.svelte-1noptry){margin-top:0}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .tags-wrap:where(.svelte-1noptry) ul.tags:where(.svelte-1noptry) li:where(.svelte-1noptry){font-size:1.0625rem}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .tags-wrap:where(.svelte-1noptry) ul.tags:where(.svelte-1noptry) li:where(.svelte-1noptry) a:where(.svelte-1noptry):focus{outline-color:var(--links)}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .edit-link:where(.svelte-1noptry){font-weight:600}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .edit-link:where(.svelte-1noptry) svg{width:25px;height:auto;margin-right:5px;vertical-align:middle}#post-footer.svelte-1noptry .tags-edit:where(.svelte-1noptry) .edit-link:where(.svelte-1noptry) svg path{fill:var(--text)}
