.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}:root{--fs-caption: .875rem;--fs-body: 1rem;--fs-body-m: 2rem;--fs-title: clamp(2rem, 6vw, 6rem);--margin: 1rem;--ly-column-w: 13rem;--ly-column-h: var(--ly-column-w);--ly-gap: calc(var(--margin) / 2)}[data-theme=light]:root{color-scheme:light;--bg-color: hsl(0, 0%, 100%);--fg-color: hsl(0, 0%, 5%);--fg-color-light: color-mix(in srgb, var(--fg-color) 10%, var(--bg-color));--fg-color-medium: color-mix(in srgb, var(--fg-color) 60%, var(--bg-color));--accent-color: var(--fg-color);--accent-color-hover: color-mix(in srgb, var(--fg-color) 60%, var(--bg-color))}[data-theme=dark]:root{color-scheme:dark;--fg-color: hsl(0, 0%, 90%);--bg-color: hsl(0, 0%, 12%);--fg-color-light: color-mix(in srgb, var(--fg-color) 10%, var(--bg-color));--fg-color-medium: color-mix(in srgb, var(--fg-color) 60%, var(--bg-color));--accent-color: var(--fg-color);--accent-color-hover: color-mix(in srgb, var(--fg-color) 60%, var(--bg-color))}:root{--divider-color: var(--fg-color-light)}[data-theme=light] .astro-code,[data-theme=light] .astro-code span{color:var(--shiki-light)!important;background-color:var(--shiki-light-bg)!important;font-style:var(--shiki-light-font-style)!important;font-weight:var(--shiki-light-font-weight)!important;text-decoration:var(--shiki-light-text-decoration)!important}[data-theme=dark] .astro-code,[data-theme=dark] .astro-code 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}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;background-color:var(--bg-color);color:var(--fg-color);font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html[data-theme=dark] .js-cursor{--bg-color: var(--fg-color)}::selection{background-color:var(--fg-color);color:var(--page-bg, var(--bg-color))}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;text-rendering:auto;margin:0;padding:0;background-color:var(--page-bg, var(--bg-color))}ul{list-style:none;padding:0;margin:0}a{color:var(--accent-color);text-decoration:none}.visually-hidden:not(:focus):not(:active){width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);position:absolute;white-space:nowrap}.mobile-header{position:static;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--margin);background-color:var(--page-bg, var(--bg-color))}@media(min-width:1200px){.mobile-header{display:none}}@media(max-width:1199px){.mobile-header{grid-column:1 / -1;grid-row:1}}@media(max-width:1199px){body.has-content-bg .mobile-header{background-color:transparent}}@media(max-width:1199px){body.has-content-bg{background-image:var(--post-content-bg-url);background-size:cover;background-position:center;background-repeat:no-repeat}}body.has-theme-bg{--page-bg: var(--post-theme-bg, var(--bg-color));--fg-color-light: color-mix(in srgb, var(--fg-color) 10%, var(--page-bg));--fg-color-medium: color-mix(in srgb, var(--fg-color) 60%, var(--page-bg));--divider-color: color-mix(in srgb, var(--fg-color) 25%, var(--page-bg))}html[data-theme=dark] body.has-theme-bg{--page-bg: var( --post-theme-bg-dark, color-mix(in srgb, var(--post-theme-bg) 30%, #000) );--fg-color-light: color-mix(in srgb, var(--fg-color) 10%, var(--page-bg));--fg-color-medium: color-mix(in srgb, var(--fg-color) 60%, var(--page-bg));--divider-color: color-mix(in srgb, var(--fg-color) 30%, var(--page-bg))}@media(max-width:1199px){body.has-content-bg:before{content:"";position:fixed;inset:0;pointer-events:none;background:color-mix(in srgb,var(--bg-color) 55%,transparent);z-index:0}body.has-content-bg>*{position:relative;z-index:1}}.site-logo{font-size:var(--fs-body);font-weight:500;margin:0;color:var(--fg-color);text-decoration:none;position:relative}.site-logo:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.site-logo:hover:after{transform:scaleX(1)}.mobile-header-actions{display:flex;align-items:center;gap:var(--margin)}body.is-mobile-nav-open .mobile-header .site-logo,body.is-mobile-nav-open .mobile-header .theme-toggle{opacity:0;pointer-events:none}.menu-toggle{--size: 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:var(--size);height:var(--size);background:none;border:none;cursor:pointer;padding:0}.menu-toggle span{display:block;width:100%;height:1px;background-color:var(--fg-color);transition:transform .25s,opacity .25s}.menu-toggle[aria-expanded=true] span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}.mobile-nav{position:fixed;inset:0;z-index:99;background-color:var(--bg-color);display:flex;flex-direction:column;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}.mobile-nav.is-open{opacity:1;visibility:visible}.mobile-nav ul{display:flex;flex-direction:column;gap:calc(var(--margin) * 1.25);text-align:left;width:min(22rem,80vw);margin:0 auto;padding:0 var(--margin)}.mobile-nav a{font-size:var(--fs-body-m);color:var(--fg-color);text-decoration:none;transition:opacity .15s;position:relative}.mobile-nav a:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.mobile-nav a:hover:after{transform:scaleX(1)}.mobile-nav a:hover{opacity:1}.mobile-nav a[aria-current=page]{color:var(--fg-color);pointer-events:none}.mobile-nav a[aria-current=page]:after{transform:scaleX(1)}@media(min-width:1200px){.mobile-nav{display:none}}.ly-default{height:100dvh;overflow:hidden;padding-top:calc(var(--margin) * 3 + 21px);display:grid;grid-template-columns:var(--margin) 1fr var(--margin);grid-template-rows:auto 1fr var(--margin)}@media(max-width:1199px){.ly-default{height:auto;min-height:100dvh;overflow:visible;padding-top:0}}@media(min-width:1200px){.ly-default{padding-top:0;grid-template-columns:var(--margin) var(--ly-column-w) minmax(200px,1fr) minmax(300px,2fr) var(--margin);grid-template-rows:1fr;column-gap:var(--ly-gap)}}.col-nav{display:none}@media(min-width:1200px){.col-nav{display:flex;flex-direction:column;justify-content:space-between;grid-column:2 / 3;grid-row:1 / 2;padding:var(--margin) var(--margin) var(--margin) 0;border-right:1px solid var(--divider-color);min-height:100vh}.col-nav-top{display:flex;justify-content:space-between;align-items:flex-start}.col-nav-bottom{padding-bottom:var(--margin)}.desktop-nav ul{display:flex;flex-direction:column;gap:var(--margin)}.desktop-nav a{font-size:var(--fs-body);color:var(--fg-color);text-decoration:none;transition:opacity .15s;position:relative}.desktop-nav a:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.desktop-nav a:hover:after{transform:scaleX(1)}.desktop-nav a:hover{opacity:1}.desktop-nav a[aria-current=page]{color:var(--fg-color);pointer-events:none}.desktop-nav a[aria-current=page]:after{transform:scaleX(1)}}.theme-toggle{--size: 21px;width:var(--size);aspect-ratio:1;background-color:var(--bg-color);border:1px solid var(--fg-color);border-radius:50%;cursor:pointer;overflow:hidden;position:relative;flex-shrink:0}body.has-theme-bg .theme-toggle{background-color:var(--page-bg, var(--bg-color));border-color:color-mix(in srgb,var(--post-theme-bg-dark, var(--bg-color)) 70%,var(--fg-color))}body.has-theme-bg .theme-toggle:before{background-color:color-mix(in srgb,var(--post-theme-bg-dark, var(--bg-color)) 70%,var(--fg-color))}html[data-theme=dark] body.has-theme-bg .theme-toggle{background-color:var(--page-bg, var(--bg-color));border-color:color-mix(in srgb,var(--post-theme-bg, var(--bg-color)) 70%,var(--fg-color))}html[data-theme=dark] body.has-theme-bg .theme-toggle:before{background-color:color-mix(in srgb,var(--post-theme-bg, var(--bg-color)) 70%,var(--fg-color))}.theme-toggle:before{display:block;content:"";position:absolute;width:50%;height:100%;left:0;top:0;background-color:var(--fg-color);transition:transform .25s}[data-theme=dark] .theme-toggle:before{transform:rotate(180deg);transform-origin:center}main{grid-column:2 / 3;grid-row:1 / 3;display:flex;flex-direction:column;gap:calc(var(--margin) * 2)}@media(max-width:1199px){main{grid-row:2 / 3;margin-top:calc(var(--margin) / 2)}}@media(min-width:1200px){main{grid-column:3 / 6;grid-row:1 / 2;display:grid;grid-template-columns:subgrid;gap:0}}.col-main{padding-top:calc(var(--margin) * 2)}@media(min-width:1200px){.col-main{grid-column:1 / 2;padding:var(--margin);border-right:1px solid var(--divider-color);display:flex;flex-direction:column;height:100vh;overflow-y:auto;padding-bottom:calc(var(--margin) * 2)}.col-main:before{content:"";flex:1 1 auto;min-height:0}}.col-main::-webkit-scrollbar{width:6px}.col-main::-webkit-scrollbar-track{background:transparent}.col-main::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.col-main::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.col-main{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.col-sidebar{padding-top:var(--margin);overflow-y:auto}@media(max-width:1199px){.col-sidebar{display:none;overflow:visible}}@media(max-width:1199px){.col-sidebar.post-body{display:block}}@media(min-width:1200px){.col-sidebar{grid-column:2 / 4;padding:var(--margin);padding-right:0;display:flex;align-items:center;justify-content:center;height:100vh;overflow-y:auto}}@media(min-width:1200px){.col-sidebar.post-body{flex-direction:column;align-items:flex-start;justify-content:flex-start}}.col-sidebar::-webkit-scrollbar{width:6px}.col-sidebar::-webkit-scrollbar-track{background:transparent}.col-sidebar::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px;transition:background .2s ease}.col-sidebar::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.col-sidebar{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.col-sidebar>div{opacity:0;transition:opacity .35s ease-in-out}.col-sidebar>div.is-visible{display:block;opacity:1}.col-sidebar.post-body>div{opacity:1}.col-sidebar h2{display:block;margin:0;font-size:clamp(2rem,8vw,8rem);letter-spacing:-.05em;line-height:90%;color:var(--fg-color);font-weight:500}@media(min-width:1200px){.col-sidebar h2{font-size:clamp(4rem,10vw,12rem)}}.col-sidebar figure,.col-sidebar img{display:none}.col-sidebar.post-body figure,.col-sidebar.post-body img{display:block}.col-sidebar.home-sidebar{align-items:stretch;justify-content:stretch;padding:var(--margin);padding-right:var(--margin)}.home-sidebar .is-visible{width:100%;height:100%;display:flex}.home-sidebar h2{margin-bottom:calc(var(--margin) * .75)}.ascii-anim{margin:0;font-family:Courier New,Courier,monospace;font-size:clamp(.8rem,1.6vw,1.5rem);line-height:1.05;letter-spacing:.01em;color:var(--fg-color);white-space:pre;width:100%;height:100%;overflow:hidden;cursor:default;user-select:none}.js-cursor{--size: 30px;display:none;position:fixed;top:0;left:0;will-change:transform,opacity;z-index:9999;width:var(--size);height:var(--size);border-radius:50%;background-color:#fff;pointer-events:none;mix-blend-mode:difference;opacity:0;transition:opacity .4s ease}.js-cursor.is-ready{opacity:1}.js-cursor.is-hidden,.js-cursor.is-inactive{opacity:0}@media(pointer:fine){.js-cursor{display:block}}.col-main p{font-size:var(--fs-body);line-height:160%;text-wrap:wrap;hyphens:none;margin:0;margin-bottom:var(--margin)}.col-main p:last-child{margin-bottom:0}.col-main a:not(.back-link):not(.list-link){text-decoration:none;position:relative}.col-main a:not(.back-link):not(.list-link):after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.col-main a:not(.back-link):not(.list-link):hover:after{transform:scaleX(1)}.post-item,.project-item{padding:calc(var(--margin) / 2) 0}.post-item a,.project-item a{display:block;text-decoration:none;color:var(--fg-color)}.post-item a:after,.project-item a:after{display:none}.post-item a:hover,.project-item a:hover{opacity:1}.post-item:first-child,.project-item:first-child{padding-top:0}.post-title,.project-title{font-size:var(--fs-body);font-weight:500;margin:0;margin-bottom:calc(var(--margin) / 4);position:relative;display:inline}.post-title:after,.project-title:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.post-item a:hover .post-title:after,.project-item a:hover .project-title:after{transform:scaleX(1)}.post-meta,.project-meta{font-size:var(--fs-caption);color:var(--fg-color-medium);margin:0}.post-header{display:flex;flex-direction:column;justify-content:space-between;flex:1}@media(max-width:1199px){.col-main.post-header{display:none}}@media(min-width:1200px){.col-main.post-header{padding-bottom:calc(var(--margin) * 2)}.col-main.post-header:before{display:none}}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--fg-color-medium);text-decoration:none;font-size:var(--fs-caption);transition:color .2s ease;padding:.5rem 0;align-self:flex-start}.back-link:hover{color:var(--fg-color)}.back-link span{position:relative}.back-link span:after{content:"";position:absolute;left:0;bottom:-2px;width:100%;height:1px;background-color:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.back-link:hover span:after{transform:scaleX(1)}.back-link svg{width:18px;height:18px;transition:transform .2s ease}.back-link:hover svg{transform:translate(-4px)}.post-header-content{margin-top:auto}.post-mobile-header{margin-bottom:calc(var(--margin) * 1.25)}@media(min-width:1200px){.post-mobile-header{display:none}}.post-page-date{font-size:var(--fs-body-m);color:var(--fg-color-medium);margin:0;margin-bottom:1rem;font-weight:400;letter-spacing:.02em}@media(max-width:1199px){.post-page-date{font-size:var(--fs-caption);margin-bottom:.75rem;letter-spacing:.01em}}.post-page-title{font-size:clamp(2rem,5vw,3.5rem);font-weight:700;margin:0;line-height:1.1;letter-spacing:-.03em}.list-mobile-header{display:none}.list-page-title{font-size:clamp(2rem,7vw,3rem);font-weight:700;margin:0 0 var(--margin) 0;line-height:1.1;letter-spacing:-.03em}@media(max-width:1199px){.list-mobile-header{display:block}}@media(min-width:1200px){.post-page-title{font-size:clamp(2.5rem,4vw,4rem)}.post-page-date{font-size:clamp(1.5rem,2vw,2.5rem);margin-bottom:2rem}}.post-body{--post-body-pad-left: var(--margin);--post-body-pad-right: 0;--post-body-prose-pad-right: var(--margin);padding:var(--margin);padding-right:0;align-items:flex-start!important;justify-content:flex-start!important}@media(min-width:1200px){.post-body{--post-body-pad-left: calc(var(--margin) * 2);--post-body-pad-right: calc(var(--margin) * 2);--post-body-prose-pad-right: calc(var(--margin) * 2);padding:calc(var(--margin) * 2)}}.post-body.has-content-bg{position:relative}.post-body.has-content-bg:before,.post-body.has-content-bg:after{content:"";position:absolute;inset:0;pointer-events:none}.post-body.has-content-bg:before{background-image:var(--post-content-bg-url);background-size:cover;background-position:center;opacity:.35}.post-body.has-content-bg:after{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-color) 35%,transparent),color-mix(in srgb,var(--bg-color) 50%,transparent) 45%,color-mix(in srgb,var(--bg-color) 65%,transparent))}.post-body.has-content-bg>*{position:relative;z-index:1}@media(max-width:1199px){.post-body.has-content-bg:before,.post-body.has-content-bg:after{display:none}}.post-header.has-title-bg{background-image:var(--post-cover-url);background-size:cover;background-position:center;background-repeat:no-repeat}@media(min-width:1200px){.post-header.has-title-bg{margin-left:calc(var(--margin) * -1);padding-left:calc(var(--margin) * 2)}}.post-header.has-title-bg .post-page-date,.post-header.has-title-bg .post-page-title{display:inline-block;padding:.3rem .6rem;background-color:color-mix(in srgb,var(--bg-color) 85%,#f6e7a6)}.post-header.has-title-bg .post-page-title{padding:.4rem .8rem}.post-header.has-title-bg .back-link{background-color:color-mix(in srgb,var(--bg-color) 85%,#f6e7a6);padding:.25rem .6rem}.post-cover{margin:0 0 calc(var(--margin) * 1.5) 0}.post-cover img{display:block;width:100%;height:auto;border-radius:12px}@media(min-width:1200px){.post-header.has-title-bg+.post-body .post-cover{display:none}}.post-body .prose{padding-right:var(--post-body-prose-pad-right)}@media(max-width:1199px){.post-body .prose{padding-right:0}}@media(max-width:1199px){.page-post{grid-template-columns:1fr;grid-template-rows:auto 1fr}.page-post main{grid-column:1 / -1}.page-post .post-body{--post-body-pad-left: var(--margin);--post-body-pad-right: var(--margin);--post-body-prose-pad-right: 0;padding-left:var(--margin);padding-right:var(--margin)}}@media(min-width:1200px){.post-body .prose{padding-right:calc(var(--margin) * 2)}}.prose{max-width:none;width:100%;font-size:var(--fs-body);line-height:1.7;color:var(--fg-color)}.prose>:not(.full-width-image){max-width:72ch;width:100%}.prose>.full-width-image{max-width:none;width:100%;margin-left:0;margin-right:0}@media(max-width:1199px){.prose>.full-width-image{max-width:none;width:100vw;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%)}}.prose h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:700;margin-top:0;margin-bottom:1.5rem;line-height:1.1;letter-spacing:-.03em}@media(max-width:1199px){.prose h1{font-size:clamp(2rem,8vw,2.75rem)}}.prose h2{font-size:clamp(1.75rem,4vw,2.5rem);font-weight:700;margin-top:3.5rem;margin-bottom:1.25rem;line-height:1.2;letter-spacing:-.03em}@media(max-width:1199px){.prose h2{font-size:clamp(1.5rem,6vw,2rem);margin-top:2.5rem}}.prose h3{font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:600;margin-top:2.5rem;margin-bottom:.75rem;line-height:1.3;letter-spacing:-.01em}@media(max-width:1199px){.prose h3{font-size:1.125rem;margin-top:2rem}}.prose h4{font-size:1rem;font-weight:600;margin-top:2rem;margin-bottom:.5rem;line-height:1.4;text-transform:uppercase;letter-spacing:.05em}.prose h1:first-child,.prose h2:first-child,.prose h3:first-child,.prose h4:first-child{margin-top:0}.prose p{margin-bottom:1.5rem}.prose p:last-child{margin-bottom:0}.prose a{color:var(--fg-color);text-decoration:underline;text-underline-offset:.2em;transition:opacity .2s ease}.prose a:hover{opacity:.7}.prose strong{font-weight:700}.prose em{font-style:italic}.prose ul,.prose ol{margin-bottom:1.5rem;padding-left:1.5rem}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose li{margin-bottom:.5rem;line-height:1.6}.prose li::marker{color:var(--fg-color-medium)}.prose ul ul,.prose ol ol,.prose ul ol,.prose ol ul{margin-top:.5rem;margin-bottom:.5rem}.prose blockquote{margin:2.5rem 0;padding:0 0 0 1.5rem;border-left:2px solid var(--fg-color-medium);color:var(--fg-color-medium)}.prose blockquote p{margin-bottom:.75rem;font-size:1.125rem;line-height:1.6}.prose blockquote p:last-child{margin-bottom:0}.prose blockquote blockquote{margin:1rem 0}.prose code{font-family:SF Mono,Fira Code,Monaco,Consolas,monospace;font-size:.875em;background:var(--fg-color-light);padding:.2em .4em;border-radius:4px}.prose pre{margin:2rem 0;padding:1.5rem;border-radius:8px;overflow-x:auto;font-size:.875rem;line-height:1.6;font-family:SF Mono,Fira Code,Monaco,Consolas,monospace}.prose pre code{background:none;padding:0;font-size:inherit;color:inherit;border-radius:0}.prose hr{margin:3rem 0;border:none;border-top:1px solid var(--fg-color-light)}.prose table{width:100%;margin:2.5rem 0;border-collapse:collapse;font-size:.9375rem}.prose th,.prose td{padding:1rem 1.25rem;text-align:left;border-bottom:1px solid var(--fg-color-light)}.prose th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-color-medium)}.prose tr:last-child td{border-bottom:none}.prose tbody tr{transition:background-color .15s ease}.prose tbody tr:hover{background-color:var(--fg-color-light)}.prose img{width:100%;max-width:100%;height:auto;margin:2rem 0;border-radius:8px}@media(max-width:1199px){.prose>.full-width-image img{border-radius:0}}.prose ul:has(input[type=checkbox]){list-style:none;padding-left:0}.prose li:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:.75rem;padding:.5rem 0}.prose input[type=checkbox]{-webkit-appearance:none;appearance:none;width:1.25rem;height:1.25rem;margin-top:.15rem;border:2px solid var(--fg-color);border-radius:4px;background:transparent;cursor:pointer;flex-shrink:0;position:relative;transition:background-color .15s ease,border-color .15s ease}.prose input[type=checkbox]:checked{background-color:var(--fg-color)}.prose input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:5px;height:9px;border:solid var(--bg-color);border-width:0 2px 2px 0;transform:rotate(45deg)}.prose li:has(input[type=checkbox]:checked){color:var(--fg-color-medium)}.prose del{text-decoration:line-through;opacity:.7}.prose dl{margin:1.5rem 0}.prose dt{font-weight:600;margin-top:1rem}.prose dd{margin-left:1.5rem;margin-top:.25rem;color:var(--fg-color-medium)}.prose .footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--fg-color-light);font-size:.875rem}.prose .footnotes ol{padding-left:1.25rem}.prose sup a{text-decoration:none;font-weight:500}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p{margin-top:0}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-group(col-main),::view-transition-group(col-sidebar){overflow:hidden}::view-transition-old(col-main),::view-transition-new(col-main){animation-duration:.35s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(col-main){animation-name:slide-up-out}::view-transition-new(col-main){animation-name:slide-up-in}::view-transition-old(col-sidebar),::view-transition-new(col-sidebar){animation-duration:.35s;animation-timing-function:cubic-bezier(.4,0,.2,1)}::view-transition-old(col-sidebar){animation-name:slide-up-out}::view-transition-new(col-sidebar){animation-name:slide-up-in;animation-delay:.08s;animation-fill-mode:backwards}@keyframes slide-up-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes slide-up-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){::view-transition-old(col-main),::view-transition-new(col-main),::view-transition-old(col-sidebar),::view-transition-new(col-sidebar){animation-duration:.15s;animation-delay:0s}@keyframes slide-up-out{0%{opacity:1}to{opacity:0}}@keyframes slide-up-in{0%{opacity:0}to{opacity:1}}}.lightbox{position:fixed;inset:0;z-index:1000;background-color:#000000f2;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.lightbox.is-open{opacity:1;visibility:visible}.lightbox-img-wrapper{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:zoom-in}.lightbox-img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px;transform-origin:center;transition:transform .15s ease-out,opacity .15s ease;user-select:none}.lightbox.is-open .lightbox-img{animation:lightbox-img-in .25s ease-out}@keyframes lightbox-img-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:1rem;right:1rem;width:44px;height:44px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;font-size:1.5rem;cursor:pointer;opacity:.7;transition:opacity .2s ease,background .2s ease;display:flex;align-items:center;justify-content:center;z-index:10}.lightbox-close:hover{opacity:1;background:#fff3}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;opacity:.7;transition:opacity .2s ease,background .2s ease;display:flex;align-items:center;justify-content:center;z-index:10}.lightbox-nav:hover{opacity:1;background:#fff3}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-zoom-controls{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;background:#0009;padding:.5rem .75rem;border-radius:2rem;z-index:10}.lightbox-zoom-btn{width:32px;height:32px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.lightbox-zoom-btn:hover{background:#ffffff40}.lightbox-zoom-level{color:#fff;font-size:.875rem;min-width:3rem;text-align:center;opacity:.8}.lightbox-counter{position:absolute;top:1rem;left:50%;transform:translate(-50%);color:#fff;font-size:.875rem;opacity:.7;z-index:10}.lightbox-nav[style*="display: none"],.lightbox-counter[style*="display: none"]{display:none!important}.lightbox-close,.lightbox-nav,.lightbox-zoom-controls,.lightbox-counter{transition:opacity .3s ease,background .2s ease,visibility .3s ease}.lightbox.controls-hidden .lightbox-close,.lightbox.controls-hidden .lightbox-nav,.lightbox.controls-hidden .lightbox-zoom-controls,.lightbox.controls-hidden .lightbox-counter{opacity:0;visibility:hidden;pointer-events:none}@media(pointer:coarse){.lightbox-nav{width:56px;height:56px}.lightbox-close{width:48px;height:48px}.lightbox-zoom-btn{width:40px;height:40px}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
