.stack{display:flex;flex-direction:column;justify-content:flex-start}.flow>*+*{margin-top:var(--flow-space, var(--spacing-xs))}.wrapper{padding-inline:var(--spacing-md);padding-block:var(--spacing-2xl)}.box{padding:var(--box-padding, var(--spacing-md));border-radius:var(--border-radius-sm);background-color:var(--box-background-color, oklch(95.9% 0.004 359.998deg));border:1px solid var(--box-border-color, oklch(80% 0.004 0.125deg))}.center{box-sizing:content-box;margin-inline:auto;max-inline-size:var(--measure, 48rem)}.cluster{display:flex;flex-wrap:wrap;gap:var(--spacing-md, 1rem)}.flex-grid{display:flex;flex-wrap:wrap}.flex-grid>*{flex:1 1 60ch}.grid{display:grid;gap:var(--grid-space, 0)}@supports(width: min(20rem, 100%)){.grid{grid-template-columns:repeat(auto-fit, minmax(min(250px, 100%), 1fr))}}@media(width < 680px){.grid{grid-template-columns:repeat(auto-fit, minmax(150px, 1fr))}}.switcher{display:flex;flex-wrap:wrap;gap:var(--gap-space)}.switcher>*{flex-grow:1;flex-basis:calc((30rem - 100%)*999)}.switcher>:nth-last-child(n+3),.switcher>:nth-last-child(n+3)~*{flex-basis:100%}.icon{height:1em;width:1em}.with-icon{display:inline-flex;align-items:baseline}.with-icon .icon{margin-inline-end:var(--space, 0.25em)}[data-theme=dark] .box{background-color:var(--box-background-color, oklch(27.5% 0.013 353.401deg));border:1px solid var(--box-border-color, oklch(42.2% 0.012 352.859deg))}@font-face{font-family:"TASA Orbiter";src:url("../fonts/TASAOrbiter-Regular.woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"TASA Orbiter";src:url("../fonts/TASAOrbiter-Bold.woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Jost";src:url("../fonts/Jost-Bold.woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:"Sligoil Micro";src:url("../fonts/Sligoil-Micro.woff2");font-weight:400;font-style:normal;font-display:swap}.text-center{text-align:center}.text-align-end{text-align:end}.mono-font{font-family:"Sligoil Micro",ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Consolas","Courier New",monospace}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;overflow:hidden}.text-h1{font-size:var(--font-size-h1)}.text-h2{font-size:var(--font-size-h2)}.text-h3{font-size:var(--font-size-h3)}.text-h4{font-size:var(--font-size-h4)}.text-h5{font-size:var(--font-size-h5)}.text-h6{font-size:var(--font-size-h6)}*,*::after,*::before{box-sizing:inherit}*::selection{background:oklch(.85 .003 .125);text-decoration:underline;text-decoration-style:wavy;color:oklch(.537 .092 208.557);text-decoration-color:oklch(.3953 .15 259.87)}:root{--color-text: oklch(28.45% 0.0047 355.06deg);--color-background: oklch(94% 0.003 354.695deg);--text-step--2: clamp(0.7813rem, 0.7469rem + 0.1717vw, 0.88rem);--text-step--1: clamp(0.9375rem, 0.881rem + 0.2826vw, 1.1rem);--text-step--0: clamp(1.125rem, 1.038rem + 0.4348vw, 1.375rem);--font-size-h1: clamp(2.7994rem, 2.3135rem + 2.4292vw, 4.1962rem);--font-size-h2: clamp(2.3328rem, 1.9766rem + 1.7811vw, 3.3569rem);--font-size-h3: clamp(1.944rem, 1.6861rem + 1.2896vw, 2.6855rem);--font-size-h4: clamp(1.62rem, 1.4362rem + 0.919vw, 2.1484rem);--font-size-h5: clamp(1.35rem, 1.2217rem + 0.6413vw, 1.7188rem);--font-size-h6: clamp(1.125rem, 1.038rem + 0.4348vw, 1.375rem);--spacing-xs: clamp(0.75rem, 0.6818rem + 0.3409vw, 0.9375rem);--spacing-sm: clamp(1rem, 0.9091rem + 0.4545vw, 1.25rem);--spacing-md: clamp(1.5rem, 1.3636rem + 0.6818vw, 1.875rem);--spacing-lg: clamp(2rem, 1.8182rem + 0.9091vw, 2.5rem);--spacing-xl: clamp(3rem, 2.7273rem + 1.3636vw, 3.75rem);--spacing-2xl: clamp(4rem, 3.6364rem + 1.8182vw, 5rem);--spacing-3xl: clamp(6rem, 5.4545rem + 2.7273vw, 7.5rem);--max-width-xs: 40rem;--max-width-sm: 54rem;--max-width-md: 72rem;--max-width-lg: 80rem;--line-height: 1.5;--line-height-caption: 1.6;--line-height-heading: 1;--letter-spacing-normal: 0;--letter-spacing-condensed: -0.02em;--letter-spacing-relaxed: 0.01em;--border-radius-xs: 4px;--border-radius-sm: 8px;--border-radius-md: 12px;--border-radius-lg: 16px;--border-radius-full: 9999px;--font-weight-normal: 400;--font-weight-bold: 700;--ease-out-fast: cubic-bezier(0.42, 0.77, 0.01, 1);--ease-out-slow: cubic-bezier(0.265, 0.747, 0.68, 1);--duration-fast: 200ms;--duration-medium: 400ms;--duration-slow: 600ms}html{box-sizing:border-box;scroll-behavior:smooth;-webkit-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion: reduce){html{scroll-behavior:auto}}body{margin:0;padding:0;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);height:100vh;color:var(--color-text);background-color:var(--color-background);font-family:"TASA Orbiter",-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,"Helvetica Neue","Arial Nova","Nimbus Sans",Arial,sans-serif;font-size:var(--text-step--0)}@supports(font-size: round(1px, 2px)){body{font-size:round(var(--text-step--0),2px)}}body{text-rendering:optimizeLegibility;line-height:var(--line-height);-webkit-font-smoothing:antialiased;text-decoration-skip-ink:auto;font-optical-sizing:auto;font-variant-ligatures:common-ligatures no-discretionary-ligatures no-historical-ligatures contextual;font-kerning:normal}body body,body h1,body h2,body h3,body h4,body h5,body h6,body address,body p,body hr,body pre,body blockquote,body ol,body ul,body li,body dl,body dt,body dd,body figure,body figcaption,body div,body table,body caption,body form,body fieldset{margin:0}body h1,body h2,body h3,body h4,body h5,body h6{font-family:"Jost",ISeravek,"Gill Sans Nova",Ubuntu,Calibri,"DejaVu Sans",source-sans-pro,sans-serif;line-height:var(--line-height-heading);letter-spacing:var(--letter-spacing-condensed);font-weight:var(--font-weight-bold);font-variant-caps:titling-caps;text-wrap:balance}body h1{font-size:var(--font-size-h1)}body h2{font-size:var(--font-size-h2)}body h3{font-size:var(--font-size-h3)}body h4{font-size:var(--font-size-h4)}body h5{font-size:var(--font-size-h5)}body h6{font-size:var(--font-size-h6)}@supports(text-wrap: balance){body p{text-wrap:pretty}}body p{letter-spacing:var(--letter-spacing-relaxed)}body a{color:inherit;text-decoration:none}body strong,body b,body th{font-weight:700}body ul,body ol{list-style:none;padding:0;margin:0}body mark{background-color:oklch(.617 .15 42.164);color:oklch(.915 .004 354.698)}body figure{margin:0;padding:0}body svg{display:block;stroke:currentColor}body kbd{border:1.5px solid oklch(.755 .146 69.743);border-bottom-width:4px;padding-inline:.2rem}body img,body picture{display:block;max-width:100%}body code{font-family:"Sligoil Micro",ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Consolas","Courier New",monospace;padding-inline:.2rem;border:1px solid oklch(.8 .004 .125)}body pre{overflow-x:auto;padding:var(--spacing-sm)}[data-theme=dark]{--color-text: oklch(91.5% 0.004 354.698deg);--color-background: oklch(22.1% 0.01 355.876deg)}[data-theme=dark] ::selection{background-color:oklch(.422 .012 352.859);color:oklch(.903 .047 179.802);text-decoration-color:oklch(.8017 .091 258.88)}[data-theme=dark] mark{background-color:oklch(.738 .127 37.801);color:oklch(.2845 .0047 355.06)}[data-theme=dark] kbd{border-color:oklch(.909 .092 82.838)}[data-theme=dark] code{border-color:oklch(.598 .015 .578)}@counter-style --fleurons{system:cyclic;symbols:✤ ✥ ✻ ✽ ✾ ❃;suffix:"";speak-as:bullets}.prose{text-align:start;--gap: var(--spacing-lg);--full: minmax(0, 1fr);--content: min(48rem, 100%);--popout: minmax(0, 6rem);--feature: minmax(0, 12rem);display:grid;grid-template-columns:[full-start] var(--full) [feature-start] var(--feature) [popout-start] var(--popout) [content-start] var(--content) [content-end] var(--popout) [popout-end] var(--feature) [feature-end] var(--full) [full-end]}@media(width < 860px){.prose{grid-template-columns:[full-start feature-start popout-start content-start] minmax(0, 100%) [content-end popout-end feature-end full-end]}}.prose>*{grid-column:content}.prose .popout{grid-column:popout}.prose .feature{grid-column:feature}.prose .full{grid-column:full}.prose h1:target,.prose h2:target,.prose h3:target,.prose h4:target,.prose h5:target,.prose h6:target{scroll-margin-top:2ex;animation:highlightFade 2s var(--ease-out-slow)}@media(prefers-reduced-motion: reduce){.prose h1:target,.prose h2:target,.prose h3:target,.prose h4:target,.prose h5:target,.prose h6:target{animation:none}}.prose h2{margin-top:var(--spacing-2xl)}.prose h3{margin-top:var(--spacing-lg)}.prose p{margin-top:var(--spacing-sm)}.prose h1+p,.prose h2+p,.prose h3+p,.prose h4+p,.prose h5+p,.prose h6+p{margin-top:var(--spacing-sm)}.prose a[href^="https://"]{position:relative}.prose a[href^="https://"]:link{color:oklch(.539 .193 6.483);text-decoration:underline;text-decoration-thickness:.1em;text-decoration-skip-ink:none;transition:text-decoration-color var(--duration-fast) var(--ease-out-fast),text-decoration-thickness var(--duration-fast) var(--ease-out-fast)}.prose a[href^="https://"]:hover{text-decoration-thickness:.3em;text-underline-offset:.3em}.prose a[href^="https://"]:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.prose a[href^="https://"]:active{outline:3px dashed currentColor}.prose a[href^="https://"]:visited{color:oklch(.4221 .1411 304.91)}.prose a[href^="https://"]:after{content:"↗";line-height:1;text-decoration:none;margin-inline-start:.1em}@media(prefers-reduced-motion: reduce){.prose a[href^="https://"]{transition:none}}.prose ol{list-style:none;counter-reset:orderedList;padding-inline-start:1lh}.prose ol li{margin-block-end:var(--spacing-sm);padding-inline-start:.5em;position:relative}.prose ol li::before{position:absolute;inset-inline-start:0;counter-increment:orderedList;content:counter(orderedList);width:1.5rem;inset-block-start:0;inset-inline-start:-1.75lh;padding-block:.25em;text-box:trim-start cap alphabetic;text-align:center;line-height:1;border-radius:.25em}.prose ul{list-style:none;padding-inline-start:2.5em;line-height:1.25em}.prose ul li{margin-block-end:var(--spacing-sm);padding-inline-start:.5em;position:relative;text-box:trim-start cap alphabetic}.prose ul li::before{position:absolute;inset-block-start:0;inset-inline-start:-1.25em;inline-size:1em;text-box:trim-start cap alphabetic;text-align:end;font-size:1.25em;line-height:1;font-weight:bold;color:oklch(.539 .193 6.483);content:counter(list-item, --fleurons)}.prose *+ul,.prose *+ol{margin-top:var(--spacing-sm)}.prose figure{margin-top:var(--spacing-lg);display:grid;grid-template-columns:subgrid;grid-column:full}.prose figure.popout>:not(figcaption){grid-column:popout}@media(width < 860px){.prose figure.popout>:not(figcaption){grid-column:full}}.prose figure.feature>:not(figcaption){grid-column:feature}@media(width < 860px){.prose figure.feature>:not(figcaption){grid-column:full}}.prose figure.full>:not(figcaption){grid-column:full}.prose figure img{width:100%;height:auto;outline-color:oklch(.85 .003 .125);background-color:oklch(.959 .004 359.998);aspect-ratio:auto}.prose figure figcaption{margin-block-start:var(--spacing-xs);font-size:var(--text-step--1);line-height:var(--line-height-caption);grid-column:content}.prose blockquote{margin-inline:0;padding-block:.5rem;padding-inline:1.5rem;background-color:oklch(.9 .002 .125);border:1px solid oklch(.8 .004 .125);border-inline-start:3px solid oklch(.8 .004 .125)}.prose hr{border:0;text-align:center;color:oklch(.408 .154 4.773)}.prose hr::before{content:"✿ ❀ ✿";display:block}.prose .heading-anchor{width:.75em;height:.75em;color:currentColor;opacity:.5}.prose .heading-anchor:hover{opacity:1}[data-theme=dark] .prose a[href^="https://"]{color:oklch(.903 .053 2.191)}[data-theme=dark] .prose a[href^="https://"]:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .prose a[href^="https://"]:visited{color:oklch(.915 .059 314.514)}[data-theme=dark] .prose figure img{outline-color:oklch(.422 .012 352.859);background-color:oklch(.275 .013 353.401)}[data-theme=dark] .prose ul li::before{color:oklch(.903 .053 2.191)}[data-theme=dark] .prose blockquote{background-color:oklch(.315 .009 355.305);border-color:oklch(.598 .015 .578);border-inline-start:.3rem solid oklch(.598 .015 .578)}[data-theme=dark] .prose hr{color:oklch(.735 .142 4.445)}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a;-webkit-text-size-adjust:none}.chroma .x{color:#cad3f5}.chroma .err{color:#ed8796}.chroma .cl{color:#cad3f5}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#494d64}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em 0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .na{color:#8aadf4}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:bold}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .nx{color:#cad3f5}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .ld{color:#cad3f5}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:bold}.chroma .ow{color:#91d7e3;font-weight:bold}.chroma .or{color:#91d7e3;font-weight:bold}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#5b6078;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:bold;font-style:italic}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:bold}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .go{color:#cad3f5}.chroma .gp{color:#cad3f5}.chroma .gs{font-weight:bold}.chroma .gu{color:#f5a97f;font-weight:bold}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}@view-transition{navigation:auto}@media(prefers-reduced-motion: reduce){@view-transition{animation:none}}@keyframes fade-out-up{from{transform:translateY(0);opacity:1}to{transform:translateY(-20px);opacity:0}}@keyframes fade-in-up{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}::view-transition-old(root){animation:.15s cubic-bezier(0.13, 0.52, 0.57, 1.09) both fade-out-up}::view-transition-new(root){animation:.2s cubic-bezier(0.31, -0.15, 0.38, 0.88) both fade-in-up;animation-delay:.1s}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideIn{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes highlightFade{from{background-color:oklch(from oklch(53.7% 0.092 208.557deg) l c h/0.5)}to{background-color:rgba(0,0,0,0)}}@keyframes fadeInScroll{0%{opacity:0;filter:blur(0px)}50%{filter:blur(4px)}100%{opacity:1;filter:blur(0px)}}@keyframes slideInScroll{0%{transform:translateY(100%)}100%{transform:translateY(0)}}@keyframes scaleUpScroll{0%{transform:scale(0.95)}100%{transform:scale(1)}}.skip-link:focus-visible{position:relative;top:0;width:auto;height:auto;clip:unset;overflow:visible;outline:3px solid oklch(.539 .193 6.483)}[data-theme=dark] .skip-link:focus-visible{outline-color:oklch(.903 .053 2.191)}.header{view-transition-name:header}.header-logo{display:flex;align-items:center}.header-logo span{display:inline-block;line-height:1;margin-inline-start:.5rem;font-family:"Sligoil Micro",ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Consolas","Courier New",monospace}.header-logo img{display:block;width:100%;height:auto;position:relative;top:-4px}.header-logo:hover{opacity:.8}.header-wrapper{display:flex;justify-content:space-between;padding:var(--spacing-sm);align-items:center;--measure: 1600px}.navigation-wrapper{align-items:center;flex:1}.desktop-nav{display:none}.mobile-nav{display:block;position:relative;margin-inline-start:auto}.mobile-nav .hamburger-btn{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.5rem;border-radius:.5em;margin-inline-end:var(--spacing-xs);transition:background-color 200ms ease}.mobile-nav .hamburger-btn::-webkit-details-marker{display:none}.mobile-nav .hamburger-btn:hover{background-color:oklch(.909 .007 354.811)}.mobile-nav .hamburger-btn .hamburger-icon{margin-inline-end:.25rem}.mobile-nav .mobile-dropdown-menu{position:absolute;top:100%;right:0;z-index:9;min-width:250px;margin-top:.5rem;background-color:oklch(.94 .003 354.695);border:1px solid oklch(.3953 .15 259.87);border-radius:.25em}.mobile-nav .mobile-dropdown-menu ul{flex-direction:column;gap:var(--spacing-md)}.mobile-nav .mobile-dropdown-menu a{display:block;padding:var(--spacing-xs);text-decoration:none}.mobile-nav .mobile-dropdown-menu a:hover{background-color:oklch(.909 .007 354.811)}.mobile-nav .mobile-dropdown-menu a:focus-visible{outline:2px solid oklch(.539 .193 6.483)}.mobile-nav .mobile-dropdown-menu a[aria-current=page]{font-weight:bold;color:oklch(.539 .193 6.483)}.mobile-nav .mobile-dropdown-menu a[aria-current=page]::before{transform:scaleX(1);background-color:oklch(.539 .193 6.483)}@media(min-width: 70em){.desktop-nav{display:block}.mobile-nav{display:none}}.navigation-menu{display:flex;gap:var(--spacing-md);align-items:center;margin-inline-start:2rem}.navigation-menu a{position:relative;display:inline-block}.navigation-menu a::before{position:absolute;bottom:0;left:0;content:"";display:block;width:100%;height:3px;transform:scaleX(0);transform-origin:left center;background-color:oklch(.2845 .0047 355.06);transition:transform 150ms cubic-bezier(0.78, 0.33, 0, 1.05),background-color 150ms cubic-bezier(0.78, 0.33, 0, 1.05)}@media(prefers-reduced-motion: reduce){.navigation-menu a::before{transition:none}}.navigation-menu a:hover::before{transform:scaleX(1);transform-origin:left center}@media(prefers-reduced-motion: reduce){.navigation-menu a:hover::before{transition:none}}.navigation-menu a:focus-visible{outline:3px solid oklch(.539 .193 6.483);outline-offset:3px}.navigation-menu a[aria-current=page]{color:oklch(.539 .193 6.483)}.navigation-menu a[aria-current=page]::before{transform:scaleX(1);background-color:oklch(.539 .193 6.483)}#dark-mode-toggle{align-items:center;background:none;border:none;cursor:pointer;color:inherit;aspect-ratio:1/1;padding:.5rem;border-radius:.5em;width:auto;transition:background-color 200ms ease-out,backdrop-filter 200ms ease-out}@media(prefers-reduced-motion: reduce){#dark-mode-toggle{transition:none}}#dark-mode-toggle:hover{background-color:oklch(.909 .007 354.811);transition:200ms ease-in}#dark-mode-toggle:focus-visible{outline:1px solid oklch(.539 .193 6.483)}#dark-mode-toggle svg{width:24px;height:24px}#dark-mode-toggle svg:active{scale:.92}.cs-sun{display:block}.cs-moon{display:none}[data-theme=dark] .mobile-nav .hamburger-btn:hover{background-color:oklch(.356 .015 357.829)}[data-theme=dark] .mobile-nav .mobile-dropdown-menu{background-color:oklch(.221 .01 355.876);border-color:oklch(.8017 .091 258.88)}[data-theme=dark] .mobile-nav .mobile-dropdown-menu a:hover{background-color:oklch(.356 .015 357.829)}[data-theme=dark] .mobile-nav .mobile-dropdown-menu a[aria-current=page]{font-weight:bold;color:oklch(.903 .053 2.191)}[data-theme=dark] #dark-mode-toggle:hover{background-color:oklch(.356 .015 357.829)}[data-theme=dark] #dark-mode-toggle:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .cs-sun{display:none}[data-theme=dark] .cs-moon{display:block}[data-theme=dark] .navigation-menu a::before{background-color:oklch(.915 .004 354.698)}[data-theme=dark] .navigation-menu a:hover::before{transform:scaleX(1);transition:transform 200ms ease-in}[data-theme=dark] .navigation-menu a:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .navigation-menu a[aria-current=page]{color:oklch(.903 .053 2.191)}[data-theme=dark] .navigation-menu a[aria-current=page]::before{background-color:oklch(.903 .053 2.191)}.site_footer{width:100%;border-top:1px solid oklch(.9 .002 .125);view-transition-name:footer}.footer__wrapper{padding-block:var(--spacing-sm);--flow-space: var(--spacing-md);line-height:1}.footer-container_contacts a{text-underline-offset:2px;text-decoration:underline}.footer-container_contacts a:hover{color:oklch(.539 .193 6.483)}.footer-container_contacts a:focus-visible{color:oklch(.539 .193 6.483);outline:2px solid oklch(.539 .193 6.483)}.footer-container_web-badges{--measure: 40rem;gap:var(--spacing-xs);justify-content:center;align-items:center}.footer-container_web-badges a:focus-visible{outline:4px dashed oklch(.539 .193 6.483)}.footer-container_web-badges img{display:block;image-rendering:pixelated;aspect-ratio:auto 88/31}.footer-container_web-badges img:hover{filter:brightness(1.2)}.footer-container_author{font-size:var(--text-step--1);color:oklch(.3984 .0056 .26)}.footer-container_ribbon{height:.25em;background:linear-gradient(90deg, #ea392f 0% 9.091%, #f28917 9.091% 18.182%, #eecb12 18.182% 27.273%, #78b82a 27.273% 36.364%, #4375ca 36.364% 45.455%, #c346e3 45.455% 54.545%, #7bcce5 54.545% 63.636%, #eaeaea 63.636% 72.727%, #f4aec8 72.727% 81.818%, #000 81.818% 90.909%, #945516 90.909% 100%)}[data-theme=dark] .site_footer{border-top:1px solid oklch(.315 .009 355.305)}[data-theme=dark] .footer-container_contacts a:hover{color:oklch(.903 .053 2.191)}[data-theme=dark] .footer-container_contacts a:focus-visible{color:oklch(.903 .053 2.191);outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .footer-container_web-badges a:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .footer-container_author{color:oklch(.824 .009 .185)}.homepage{--flow-space: var(--spacing-2xl)}.homepage section>*{--flow-space: var(--spacing-md)}.homepage section #greeting{font-size:var(--text-step--1);color:oklch(.3984 .0056 .26)}.homepage section #greeting i{margin-inline-start:4px}.homepage__webring-textLink{text-decoration:underline;text-decoration-color:oklch(from oklch(28.45% 0.0047 355.06deg) l c h/0.4);text-decoration-thickness:.1em;transition:text-decoration-color var(--duration-fast) var(--ease-out-fast),text-decoration-thickness var(--duration-fast) var(--ease-out-fast)}.homepage__webring-textLink:hover{text-decoration-color:currentColor;text-decoration-thickness:.3em}.homepage__webring-textLink:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.homepage__projects>*{--flow-space: var(--spacing-2xl)}.homepage__projects-card{display:block;--flow-space: var(--spacing-sm);--box-padding: var(--spacing-lg);transition:box-shadow var(--duration-fast) var(--ease-out-fast),scale var(--duration-fast) var(--ease-out-fast)}@media(prefers-reduced-motion: reduce){.homepage__projects-card{transition:none}}.homepage__projects-card:hover{box-shadow:12px 12px 0 0 oklch(.539 .193 6.483);transform:scale(1.02);outline:1px solid oklch(.539 .193 6.483)}.homepage__projects-card:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.homepage__projects-card:active{scale:.98}.homepage__projects-card:focus-within h3,.homepage__projects-card:focus-within p{text-decoration:underline;text-underline-offset:2px}.homepage__projects-card-image img{border-radius:calc(var(--border-radius-sm) - var(--box-padding));aspect-ratio:16/9}.homepage__projects-card-info-year,.homepage__projects-card-info-category{text-transform:capitalize;border-radius:var(--border-radius-xs);font-size:var(--text-step--1);border:1px solid oklch(.9 .002 .125);background-color:oklch(.94 .003 354.695);padding:3px 9px;font-family:"Sligoil Micro",ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Consolas","Courier New",monospace;color:oklch(.3984 .0056 .26)}[data-theme=dark] .homepage #greeting{color:oklch(.824 .009 .185)}[data-theme=dark] .homepage__webring-textLink{text-decoration-color:oklch(from oklch(91.5% 0.004 354.698deg) l c h/0.4)}[data-theme=dark] .homepage__webring-textLink:hover{text-decoration-color:currentColor}[data-theme=dark] .homepage__projects-card{background-color:oklch(.275 .013 353.401)}[data-theme=dark] .homepage__projects-card:hover{box-shadow:12px 12px 0 0 oklch(.903 .053 2.191);outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .homepage__projects-card:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .homepage__projects-card-info-year,[data-theme=dark] .homepage__projects-card-info-category{background-color:oklch(.356 .015 357.829);border:1px solid oklch(.315 .009 355.305);color:oklch(.824 .009 .185)}.project-page header{padding-block-end:var(--spacing-sm)}.project-page h2{counter-increment:heading-counter}.project-page h2::before{content:counter(heading-counter, decimal-leading-zero) " - "}.project-summary{--flow-space: var(--spacing-sm)}.feature-content p{margin:0}[data-theme=dark] .project-page--content>figure img,[data-theme=dark] .project-page--content>img{outline-color:oklch(.422 .012 352.859);background-color:oklch(.275 .013 353.401)}.about-article{--measure: var(--max-width-xs)}.about-article--content{--flow-space: var(--spacing-lg)}.about-article--content>*{--flow-space: var(--spacing-xs)}.about-article--content p{align-self:flex-start;padding:8px 12px;border-radius:var(--border-radius-md);background-color:oklch(.909 .007 354.811);max-inline-size:60%;overflow-wrap:break-word}@media(prefers-reduced-motion: no-preference){@supports(animation-timeline: view()){.about-article--content p,.about-article--content blockquote{animation:fadeInScroll var(--duration-fast) linear forwards,slideInScroll var(--duration-fast) linear forwards;animation-timeline:view();animation-range-start:entry 0%;animation-range-end:cover 50%}.about-article--content p:nth-child(n),.about-article--content blockquote:nth-child(n){animation-delay:calc((n - 1)*.1s)}}}.about-article--content a{color:oklch(.539 .193 6.483);text-decoration:underline;text-decoration-thickness:.1em;text-decoration-skip-ink:none;transition:text-decoration-thickness var(--duration-fast) var(--ease-out-fast)}.about-article--content a:hover{text-decoration-thickness:.3em}.about-article--content a:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.about-article--content a:active{outline:3px dashed currentColor}.about-article--content a:visited{color:oklch(.4221 .1411 304.91)}@media(prefers-reduced-motion: reduce){.about-article--content a{transition:none}}.about-article--content blockquote{align-self:end;padding:0;border-radius:var(--border-radius-md);max-inline-size:60%}.about-article--content blockquote>p{background-color:oklch(.8816 .0413 235.75);max-width:100%}[data-theme=dark] .about-article--content p{background-color:oklch(.356 .015 357.829)}[data-theme=dark] .about-article--content a{color:oklch(.903 .053 2.191)}[data-theme=dark] .about-article--content a:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .about-article--content a:visited{color:oklch(.915 .059 314.514)}[data-theme=dark] .about-article--content blockquote>p{background-color:oklch(.396 .042 230.038)}.blog-list{--flow-space: var(--spacing-lg)}.blog-list .blog-box{display:block;--flow-space: var(--spacing-xs);transition:box-shadow 250ms var(--ease-out-fast),scale 250ms var(--ease-out-fast)}@media(prefers-reduced-motion: reduce){.blog-list .blog-box{transition:none}}.blog-list .blog-box--metadata{font-size:var(--text-step--1);color:oklch(.3984 .0056 .26)}.blog-list .blog-box:hover{outline:1px solid oklch(.539 .193 6.483);box-shadow:6px 6px 0 0 oklch(.539 .193 6.483);transform:scale(1.02)}@media(prefers-reduced-motion: reduce){.blog-list .blog-box:hover{transition:none}}.blog-list .blog-box:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.blog-list .blog-box:focus-within h2{color:oklch(.539 .193 6.483);text-decoration:underline;text-decoration-color:oklch(.539 .193 6.483);text-decoration-thickness:.1em;text-underline-offset:2px}.blog-list .blog-box:active{scale:.98}[data-theme=dark] .blog-box--metadata{color:oklch(.824 .009 .185)}[data-theme=dark] .blog-box:hover{outline-color:oklch(.903 .053 2.191);box-shadow:6px 6px 0 0 oklch(.903 .053 2.191)}[data-theme=dark] .blog-box:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .blog-box:focus-within h2{color:oklch(.903 .053 2.191);text-decoration-color:oklch(.903 .053 2.191)}.blog-article{--flow-space: var(--spacing-lg);--measure: 48rem}.blog-article_header{--flow-space: var(--spacing-sm)}.blog-article_content{--flow-space: var(--spacing-lg)}.blog-article_nav{--gap-space: var(--spacing-sm);border:0;border-top:1px dashed oklch(.8 .004 .125);padding-block-start:var(--spacing-md)}.blog-article_nav .box{--box-padding: var(--spacing-xs);transition:border-color .15s ease-out}.blog-article_nav .box span{font-size:var(--step--1);color:oklch(.3984 .0056 .26)}.blog-article_nav .box:hover{border:1px solid oklch(.539 .193 6.483);color:oklch(.539 .193 6.483)}.blog-article_nav .box:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.blog-article_nav .box:focus-within p{text-decoration:underline}[data-theme=dark] .blog-article_nav{border-color:oklch(.422 .012 352.859)}[data-theme=dark] .blog-article_nav .box span{color:oklch(.824 .009 .185)}[data-theme=dark] .blog-article_nav .box:hover{border-color:oklch(.903 .053 2.191);color:oklch(.903 .053 2.191)}[data-theme=dark] .blog-article_nav .box:focus-visible{outline-color:oklch(.903 .053 2.191)}.reading-wrapper{--flow-space: var(--spacing-lg);max-inline-size:48rem}.reading-wrapper .reading-list{--flow-space: var(--spacing-xl)}.reading-wrapper .reading-item .reading-content>*{--flow-space: var(--spacing-lg)}.reading-wrapper .reading-item .reading-content footer{justify-content:space-between;padding-top:var(--spacing-xs);border-top:1px solid oklch(.8 .004 .125);font-size:var(--step--1)}.reading-wrapper .reading-pagination{display:flex;justify-content:space-between;align-items:center;font-size:var(--step--1)}.post-content{--flow-space: var(--spacing-lg)}.post-content footer{justify-content:space-between;padding-top:var(--spacing-xs);border-top:1px solid oklch(.8 .004 .125);font-size:var(--step--1)}[data-theme=dark] .reading-item .reading-content footer{border-top-color:oklch(.422 .012 352.859)}[data-theme=dark] .post-content footer{border-top:1px solid oklch(.422 .012 352.859)}.page-404{--measure: 70rem;padding-block:var(--spacing-2xl)}.text-404 a{color:oklch(.539 .193 6.483);text-decoration:underline}.text-404 a:hover{text-underline-offset:2px;text-decoration-thickness:4px}.text-404 a:focus-visible{outline:2px solid oklch(.539 .193 6.483);border-radius:.75em}.image-404 img{max-width:100%;height:auto}[data-theme=dark] .text-404 a{color:oklch(.903 .053 2.191)}[data-theme=dark] .text-404 a:focus-visible{outline-color:oklch(.903 .053 2.191)}.now-container>*+*{--flow-space: var(--spacing-lg)}.now-box>*{--flow-space: var(--spacing-xs)}.now-box{background-color:oklch(.959 .004 359.998)}.now-box--time{display:inline-flex;font-family:"Sligoil Micro",ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Mono","Source Code Pro","Fira Mono","Droid Sans Mono","Consolas","Courier New",monospace;font-size:var(--text-step--1)}[data-theme=dark] .now-box{background-color:oklch(.275 .013 353.401)}.slashes-list{--flow-space: var(--spacing-md)}.slash-entry{display:flex;--threshold: 30rem;--box-padding: var(--spacing-sm);--gap-space: var(--spacing-sm);transition:box-shadow var(--duration-fast) var(--ease-out-fast),scale var(--duration-fast) var(--ease-out-fast)}@media(prefers-reduced-motion: reduce){.slash-entry{transition:none}}.slash-entry span{font-size:var(--text-step--1)}.slash-entry:hover{--box-border-color: oklch(53.9% 0.193 6.483deg);color:oklch(.539 .193 6.483);box-shadow:6px 6px 0 0 oklch(.539 .193 6.483);scale:1.01}.slash-entry:focus-visible{outline:3px solid oklch(.539 .193 6.483)}.slash-entry:active{scale:.98}.slash-entry:focus-within{color:oklch(.539 .193 6.483);text-decoration:underline}.slash-summary{flex-grow:5}[data-theme=dark] .slash-entry:hover{--box-border-color: oklch(90.3% 0.053 2.191deg);color:oklch(.903 .053 2.191);box-shadow:6px 6px 0 0 oklch(.903 .053 2.191);scale:1.01}[data-theme=dark] .slash-entry:focus-visible{outline-color:oklch(.903 .053 2.191)}[data-theme=dark] .slash-entry:focus-within{color:oklch(.903 .053 2.191)}.colophon-article header{margin-block-end:var(--spacing-lg)}.colophon-article header>img{height:auto}.badges-wrapper{--flow-space: var(--spacing-xl)}.badges-notes h2{margin-bottom:var(--spacing-md)}.badges-notes .box{--flow-space: var(--spacing-lg)}.badges-notes .box>p{margin-top:var(--spacing-xs)}.badges-container{gap:var(--spacing-xs);justify-content:center;align-items:center}.badges-container a:focus-visible{outline:4px dashed oklch(.539 .193 6.483)}.badges-container img{display:block;image-rendering:pixelated;aspect-ratio:auto 88/31}.badges-container img:hover{filter:brightness(1.2)}[data-theme=dark] .badges-container a:focus-visible{outline-color:oklch(.903 .053 2.191)}.webring-page{--flow-space: var(--spacing-md)}.webring-page--introduction>*{--flow-space: var(--spacing-sm)}.webring-page--container>*{--flow-space: var(--spacing-md)}.webring-page--nav{display:flex;--box-padding: 0;--box-border-color: none;--webring-border-dark: var(--webring-accent);--webring-border-light: var(--webring-accent);--webring-bg-dark: oklch(from var(--webring-accent) l calc(c + 0.05) h / 0.3);--webring-bg-light: oklch(from var(--webring-accent) l c h / 0.25);--webring-bg-light-hover: oklch(from var(--webring-accent) l c h / 0.3);--webring-bg-dark-hover: oklch(from var(--webring-accent) l c h / 0.25);--webring-text-dark: oklch( from var(--webring-accent) calc(l + 0.5) c h );--webring-text-light: oklch( from var(--webring-accent) calc(l - 0.4) c h );background-color:var(--webring-bg-light);color:var(--webring-text-light)}.webring-page--nav--link{flex-grow:1;align-items:center;justify-content:center;padding:var(--spacing-sm)}.webring-page--nav--link h2{text-decoration:underline;font-weight:700}.webring-page--nav--link p{margin-top:var(--spacing-xs);font-size:var(--step--1)}.webring-page--nav--link:hover{background-color:var(--webring-bg-light-hover)}.webring-page--nav--link:focus-visible{outline:3px solid currentColor}.webring-page--nav .prev,.webring-page--nav .next{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:56px}.webring-page--nav .prev:hover,.webring-page--nav .next:hover{background-color:var(--webring-bg-light-hover)}.webring-page--nav .prev:focus-visible,.webring-page--nav .next:focus-visible{outline:3px solid currentColor}.webring-page--nav .prev .icon,.webring-page--nav .next .icon{display:block;max-inline-size:100%}.webring-page--nav .prev{border-inline-end:1px solid var(--webring-border-light)}.webring-page--nav .next{border-inline-start:1px solid var(--webring-border-light)}[data-theme=dark] .webring-page--nav{background-color:var(--webring-bg-dark);color:var(--webring-text-dark)}[data-theme=dark] .webring-page--nav--link:hover{background-color:var(--webring-bg-dark-hover)}[data-theme=dark] .webring-page--nav .prev:hover,[data-theme=dark] .webring-page--nav .next:hover{background-color:var(--webring-bg-dark-hover)}[data-theme=dark] .webring-page--nav .prev:focus-visible,[data-theme=dark] .webring-page--nav .next:focus-visible{outline-color:currentColor}[data-theme=dark] .webring-page--nav .prev{border-color:var(--webring-border-dark)}[data-theme=dark] .webring-page--nav .next{border-color:var(--webring-border-dark)}.feature-showcase{margin-block-start:var(--spacing-lg);--gap-space: var(--spacing-lg)}.project-info{border-block:1px solid oklch(.85 .003 .125);--measure: 48rem;--box-padding: var(--spacing-sm);margin-block:var(--spacing-md)}.project-info>*+*{--flow-space: var(--spacing-sm)}.project-info--block{--gap-space: var(--spacing-xs)}.project-info--block dt{font-weight:var(--font-weight-bold);max-width:140px}.project-info--block dd .collaborator{position:relative;display:inline;padding-inline-start:var(--spacing-md);text-decoration:underline;color:oklch(.3984 .0056 .26);text-decoration-color:oklch(.6331 .0085 7.42);transition:color 150ms ease-out,text-decoration-color 150ms ease-out}.project-info--block dd .collaborator:hover{color:oklch(.2845 .0047 355.06);text-decoration-color:oklch(.2845 .0047 355.06)}.project-info--block dd .collaborator .avatar{background:oklch(.959 .004 359.998);outline:oklch(.8 .004 .125);width:var(--spacing-sm);height:var(--spacing-sm);border-radius:var(--border-radius-full);position:absolute;top:50%;transform:translateY(-50%)}[data-theme=dark] .project-info{border-color:oklch(.422 .012 352.859)}[data-theme=dark] .project-info dd .collaborator{color:oklch(.824 .009 .185);text-decoration-color:oklch(.702 .02 356.685)}[data-theme=dark] .project-info dd .collaborator:hover{color:oklch(.915 .004 354.698);text-decoration-color:oklch(.915 .004 354.698)}[data-theme=dark] .project-info dd .collaborator .avatar{background:oklch(.275 .013 353.401);outline:oklch(.598 .015 .578)}