@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0}to{opacity:1}}@keyframes astroFadeOut{0%{opacity:1}to{opacity:0}}@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(*),[data-astro-transition-scope]{animation:none!important}}:root{--font-size-sm:.75rem;--font-size-base:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--size-1:.25rem;--size-2:.5rem;--size-3:.75rem;--size-4:1rem;--size-5:1.5rem;--size-6:2rem;--size-7:3rem;--size-8:4rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-full:9999px}:root,:root[data-theme=light]{color-scheme:light;--bg-base:#f6f5f4;--bg-surface:#eae9e7;--bg-surface-hover:#dfdddb;--text-primary:#1c1b22;--text-muted:#55545f;--text-inverse:#f6f5f4;--accent-primary:#3584e4;--accent-primary-hover:#266bbd;--accent-secondary:#099;--border-subtle:#d1cfcd;--border-accent:#3584e4;--alert-success:#2ea043;--alert-error:#da3633;--alert-warning:#d29922}:root[data-theme=dark]{color-scheme:dark;--bg-base:#1c1b22;--bg-surface:#282731;--bg-surface-hover:#353440;--text-primary:#f6f5f4;--text-muted:#9e9ca7;--text-inverse:#1c1b22;--accent-primary:#0ff;--accent-primary-hover:#3ff;--accent-secondary:#3584e4;--border-subtle:#353440;--border-accent:#0ff;--alert-success:#3fb950;--alert-error:#f85149;--alert-warning:#e3b341}body{font-family:var(--font-sans);text-align:left;background-color:var(--bg-base,#f6f5f4);word-wrap:break-word;overflow-wrap:break-word;color:var(--text-primary,#1c1b22);margin:0;padding:0;font-size:20px;line-height:1.7}main{z-index:0;box-sizing:border-box;width:100%;padding:var(--size-7,3rem) var(--size-4,1rem);background-color:var(--bg-base,#f6f5f4);margin:0;position:relative}.site-header{z-index:1;padding:0 var(--size-4,1rem);background:var(--bg-surface,#eae9e7);border-bottom:1px solid var(--border-subtle,#d1cfcd);margin:0;position:relative}.site-header nav{justify-content:space-between;align-items:center;display:flex}.site-header h2{font-size:var(--font-size-lg,1.25rem);font-weight:var(--font-weight-bold,700);margin:0}.site-logo,.nav-link{padding:var(--size-3,.75rem) var(--size-2,.5rem);color:var(--text-primary,#1c1b22);text-decoration:none;transition:background-color .15s,color .15s;display:inline-block}.nav-link{border-bottom:4px solid #0000;transition:background-color .15s,color .15s,border-color .15s}.site-logo:hover,.nav-link:hover{background-color:var(--bg-surface-hover,#dfdddb);color:var(--accent-primary,#3584e4)}.site-logo.active,.nav-link.active{cursor:default;pointer-events:none}.nav-link.active{border-bottom-color:var(--border-accent,#3584e4);font-weight:bolder}.internal-links{gap:var(--size-4,.5rem);display:flex}h1,h2,h3,h4,h5,h6{margin:0 0 var(--size-2,.5rem) 0;color:var(--text-primary,#1c1b22);line-height:1.2}h1{font-size:3.052em}h2{font-size:2.441em}h3{font-size:1.953em}h4{font-size:1.563em}h5{font-size:var(--font-size-lg,1.25rem)}strong,b{font-weight:var(--font-weight-bold,700)}a{color:var(--accent-primary,#3584e4)}a:hover{color:var(--accent-primary-hover,#266bbd)}p{margin-bottom:var(--size-4,1rem)}.prose p{margin-bottom:var(--size-6,2rem)}.tag-list{gap:var(--size-2,.5rem);margin:var(--size-2,.5rem) 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tag{padding:var(--size-1,.25rem) var(--size-3,.75rem);border-radius:var(--radius-full,9999px);background:var(--accent-secondary,#099);color:var(--text-inverse,#f6f5f4);font-size:var(--font-size-sm,.75rem);font-weight:var(--font-weight-medium,500);line-height:var(--line-height-tight,1.25);display:inline-block}textarea{width:100%;font-size:var(--font-size-base,1rem)}input{font-size:var(--font-size-base,1rem)}table{width:100%}img{border-radius:var(--radius-md,.5rem);max-width:100%;height:auto}code,kbd,samp,pre{font-family:var(--font-caskaydia)}code{background-color:var(--bg-surface,#eae9e7);border-radius:2px;padding:2px 5px}pre{padding:var(--size-5,1.5rem);border-radius:var(--radius-md,.5rem)}pre>code{all:unset;font-family:var(--font-caskaydia)}blockquote{border-left:4px solid var(--border-accent,#3584e4);margin:0;padding:0 0 0 20px;font-size:1.333em}hr{border:none;border-top:1px solid var(--border-subtle,#d1cfcd)}@media (width<=720px){body{font-size:18px}main{padding:var(--size-4,1rem)}}.sr-only{clip:rect(1px 1px 1px 1px);clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:0;padding:0;overflow:hidden;position:absolute!important}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}.social-links.svelte-vdqf4g{justify-content:center;gap:var(--size-4,1rem);display:flex}.social-links.svelte-vdqf4g a:where(.svelte-vdqf4g){color:var(--text-muted,#55545f);text-decoration:none}.social-links.svelte-vdqf4g a:where(.svelte-vdqf4g):hover{color:var(--accent-primary,#0ff)}footer[data-astro-cid-jo6i4kqk]{padding:var(--size-4,1rem) var(--size-2,.5rem);background-color:var(--bg-surface,#f6f5f4);color:var(--text-muted,#55545f);text-align:center;font-size:var(--font-size-sm,.75rem);flex-direction:column;gap:1rem;display:flex}.theme-toggle.svelte-1kenrq5{padding:var(--size-2,.5rem);color:var(--text-primary,#1c1b22);cursor:pointer;border-radius:var(--radius-sm,.25rem);background:0 0;border:none;justify-content:center;align-items:center;margin:0;display:inline-flex}.theme-toggle.svelte-1kenrq5:hover{color:var(--accent-primary-hover,#266bbd)}.theme-toggle.svelte-1kenrq5:focus-visible{outline:2px solid var(--accent-primary,#3584e4);outline-offset:2px}@keyframes slideFromRight{0%{transform:translate(100%)}}@keyframes slideToLeft{to{transform:translate(-100%)}}@keyframes slideFromLeft{0%{transform:translate(-100%)}}@keyframes slideToRight{to{transform:translate(100%)}}@keyframes slideFromBottom{0%{transform:translateY(100%)}}@keyframes slideToTop{to{transform:translateY(-100%)}}@keyframes slideFromTop{0%{transform:translateY(-100%)}}@keyframes slideToBottom{to{transform:translateY(100%)}}
