@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-ext-wght-normal.DhYMMuQd.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-cyrillic-wght-normal.Y3u8pIsh.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-ext-wght-normal.wWus70Ix.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-greek-wght-normal.B2SviObF.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-symbols2-wght-normal.CE6EOz_n.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-ext-wght-normal.Dvfvaomy.woff2) format("woff2-variations");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:Fira Code Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/fira-code-latin-wght-normal.CHoedHDv.woff2) format("woff2-variations");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}@layer reset,base,typography,layout,utilities,longform,theme;@font-face{font-family:Literata;src:url(/fonts/Literata-v3.103-2026-01-19.woff2) format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/Literata-Italic-v3.103-2026-01-19.woff2) format("woff2");font-style:italic;font-weight:200 900;font-display:swap}@font-face{font-family:League Spartan;src:url(/fonts/LeagueSpartan-v2.220-2026-01-19.woff2) format("woff2");font-weight:200 900;font-display:swap}@property --color-accent{syntax: "<color>"; inherits: true; initial-value: oklch(70% .18 25);}@property --surface-raised{syntax: "<color>"; inherits: true; initial-value: #ffffff;}@property --hue-coral{syntax: "<number>"; inherits: true; initial-value: 25;}@property --hue-pink{syntax: "<number>"; inherits: true; initial-value: 350;}@property --hue-orange{syntax: "<number>"; inherits: true; initial-value: 55;}@property --hue-purple{syntax: "<number>"; inherits: true; initial-value: 300;}@property --hue-yellow{syntax: "<number>"; inherits: true; initial-value: 95;}@property --hue-green{syntax: "<number>"; inherits: true; initial-value: 165;}@property --hue-blue{syntax: "<number>"; inherits: true; initial-value: 250;}@property --hue-grey{syntax: "<number>"; inherits: true; initial-value: 210;}@property --duration-fast{syntax: "<time>"; inherits: true; initial-value: .15s;}@property --duration-normal{syntax: "<time>"; inherits: true; initial-value: .2s;}@property --duration-slow{syntax: "<time>"; inherits: true; initial-value: .3s;}:root{--hue-coral: 25;--hue-pink: 350;--hue-orange: 55;--hue-purple: 300;--hue-yellow: 95;--hue-green: 165;--hue-blue: 250;--hue-grey: 210;--color-white: oklch(100% 0 0);--color-black: oklch(0% 0 0);--color-coral: light-dark(oklch(70% .18 var(--hue-coral)), oklch(80% .14 var(--hue-coral)));--color-pink: light-dark(oklch(55% .15 var(--hue-pink)), oklch(70% .13 var(--hue-pink)));--color-orange: light-dark(oklch(78% .16 var(--hue-orange)), oklch(80% .14 var(--hue-orange)));--color-purple: light-dark(oklch(60% .14 var(--hue-purple)), oklch(72% .12 var(--hue-purple)));--color-yellow: light-dark(oklch(90% .16 var(--hue-yellow)), oklch(82% .12 var(--hue-yellow)));--color-green: light-dark(oklch(65% .12 var(--hue-green)), oklch(72% .1 var(--hue-green)));--color-blue: light-dark(oklch(62% .15 var(--hue-blue)), oklch(70% .13 var(--hue-blue)));--color-ink: oklch(28% .01 var(--hue-grey));--color-charcoal: oklch(24.35% 0 0);--color-beige: oklch(96% .02 85);--color-accent: var(--color-coral);--color-visited: var(--color-purple);--color-highlight: var(--color-yellow);--color-background: light-dark(var(--color-beige), var(--color-charcoal));--color-background-secondary: light-dark( oklch(from var(--color-beige) calc(l + .02) c h), oklch(from var(--color-charcoal) calc(l - .04) c h) );--color-background-code: light-dark( oklch(from var(--color-beige) calc(l - .025) .01 var(--hue-grey)), oklch(from var(--color-charcoal) calc(l - .04) c h) );--color-text: light-dark(var(--color-ink), var(--color-beige));--color-text-secondary: light-dark( oklch(55% .01 var(--hue-grey)), oklch(75% .01 var(--hue-grey)) );--color-border: light-dark( oklch(from var(--color-black) l c h / .1), oklch(from var(--color-white) l c h / .1) );--surface-raised: light-dark(var(--color-white), oklch(16% 0 0));--font-ui: "League Spartan", "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-prose: "Literata", Georgia, "Times New Roman", serif;--font-code: "Fira Code Variable", "Fira Code", "Inconsolata", monospace;--space-3xs: clamp(.25rem, .2241rem + .1105vw, .3125rem);--space-2xs: clamp(.5rem, .4482rem + .221vw, .625rem);--space-xs: clamp(.75rem, .6723rem + .3315vw, .9375rem);--space-s: clamp(1rem, .8964rem + .442vw, 1.25rem);--space-m: clamp(1.5rem, 1.3446rem + .663vw, 1.875rem);--space-l: clamp(2rem, 1.7928rem + .884vw, 2.5rem);--space-xl: clamp(3rem, 2.6892rem + 1.326vw, 3.75rem);--space-2xl: clamp(4rem, 3.5856rem + 1.768vw, 5rem);--space-3xl: clamp(6rem, 5.3785rem + 2.6519vw, 7.5rem);--space-3xs-2xs: clamp(.25rem, .0946rem + .663vw, .625rem);--space-2xs-xs: clamp(.5rem, .3187rem + .7735vw, .9375rem);--space-xs-s: clamp(.75rem, .5428rem + .884vw, 1.25rem);--space-s-m: clamp(1rem, .6374rem + 1.547vw, 1.875rem);--space-m-l: clamp(1.5rem, 1.0856rem + 1.768vw, 2.5rem);--space-l-xl: clamp(2rem, 1.2749rem + 3.0939vw, 3.75rem);--space-xl-2xl: clamp(3rem, 2.1713rem + 3.5359vw, 5rem);--space-2xl-3xl: clamp(4rem, 2.5497rem + 6.1878vw, 7.5rem);--step--2: clamp(.6944rem, .6907rem + .016vw, .7035rem);--step--1: clamp(.8333rem, .7901rem + .1846vw, .9377rem);--step-0: clamp(1rem, .8964rem + .442vw, 1.25rem);--step-1: clamp(1.2rem, 1.0068rem + .8243vw, 1.6663rem);--step-2: clamp(1.44rem, 1.1163rem + 1.381vw, 2.2211rem);--step-3: clamp(1.728rem, 1.2172rem + 2.1794vw, 2.9607rem);--step-4: clamp(2.0736rem, 1.2975rem + 3.3115vw, 3.9467rem);--step-5: clamp(2.4883rem, 1.3395rem + 4.9018vw, 5.2609rem);--font-size-xs: var(--step--2);--font-size-sm: var(--step--1);--font-size-base: var(--step-0);--font-size-md: var(--step-1);--font-size-lg: var(--step-2);--font-size-xl: var(--step-3);--font-size-2xl: var(--step-4);--font-size-3xl: var(--step-5);--leading-none: .9;--leading-tight: 1.1;--leading-snug: 1.2;--leading-normal: 1.5;--leading-loose: 1.7;--tracking-tight: -.02ch;--tracking-normal: 0;--tracking-wide: .05ch;--tracking-wider: .1ch;--measure-standard: 80ch;--font-weight-light: 300;--font-weight-normal: 350;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--border-width-hairline: 1px;--border-width-base: 2px;--border-width-thick: 4px;--border-width-heavy: 6px;--border-width-accent: 1rem;--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-full: 9999px;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--ease-in-out: cubic-bezier(.4, 0, .2, 1);--shadow-small: drop-shadow(0px 1px 3px rgba(16, 24, 40, .1)) drop-shadow(0px 1px 2px rgba(16, 24, 40, .1));--shadow-medium: drop-shadow(0px 1px 3px rgba(16, 24, 40, .1)) drop-shadow(0px 4px 6px rgba(16, 24, 40, .1))}@layer reset{:where(*,*:before,*:after){box-sizing:border-box}:where(*){margin-block:0}:where(:focus-visible){outline:2px solid var(--color-blue, currentColor);outline-offset:5px;border-radius:1px}@media(prefers-reduced-motion:no-preference){:where(html){interpolate-size:allow-keywords}}:where(html){-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scrollbar-gutter:stable}:where(body){line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;position:relative;padding:0;margin:0}:where(img,picture,video,canvas,svg){display:block;max-width:100%}:where(img,picture){height:auto}:where(img){border:0}:where(input,button,textarea,select){font:inherit}:where(button,input,label){line-height:1.1}:where(textarea){field-sizing:content}:where(fieldset){min-inline-size:0}:where([type=search]){-webkit-appearance:textfield;appearance:textfield}:where(input:is([type=tel],[type=url],[type=email],[type=number]):not(:placeholder-shown)){direction:ltr}:where(iframe){border:0;overflow:hidden}:where(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}:where(h1,h2,h3,h4,h5,h6){text-wrap:balance}:where(p,blockquote){text-wrap:pretty}:where(:target){scroll-margin-block:5ex}:where(pre){white-space:pre-wrap}:where([hidden]:not([hidden=until-found])){display:none!important}:where(ul[role=list],ol[role=list]){list-style:none}:where(abbr){font-variant:all-small-caps;letter-spacing:var(--tracking-tight);font-size:.95em}:where(abbr[title]){cursor:help;text-decoration:underline;text-decoration-style:dashed;text-decoration-color:color-mix(in srgb,currentColor,transparent 50%);text-decoration-thickness:max(.08em,1px);text-underline-offset:.2em;text-decoration-skip-ink:none}:where(sup,sub){font-size:.7em;line-height:1}:where(del){text-decoration:line-through;text-decoration-color:color-mix(in srgb,currentColor,transparent 60%);text-decoration-thickness:1px}@media(forced-colors:active){:where(mark){color:HighlightText;background-color:Highlight}}@media(prefers-reduced-motion:no-preference){html:focus-within{scroll-behavior:smooth}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}@layer base{html{color-scheme:light dark;accent-color:var(--color-accent);color:var(--color-text);scroll-behavior:smooth}body{background-color:var(--color-background)}mark,.highlight{background:var(--color-yellow);padding-inline:.1em;border-radius:.1em;color:marktext}var{color:var(--color-accent);font-style:italic}small{font-size:var(--font-size-sm)}del,s{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:.1em;text-decoration-style:wavy;text-underline-offset:-.4em;text-decoration-skip-ink:none;cursor:not-allowed}table{border-collapse:collapse;width:100%;margin:2em 0;font-size:1em;background-color:var(--color-background-secondary);caption-side:bottom}th,td{border:1px solid var(--color-border);padding:.2em .5em;text-align:left}th{font-weight:600;text-transform:uppercase;background-color:var(--color-background-secondary);border-bottom-width:2px}summary{cursor:default}button,input[type=button],input[type=submit],input[type=reset]{display:inline-flex;align-items:center;justify-content:center;gap:.5cap;font-family:var(--font-ui);font-weight:var(--font-weight-medium);line-height:1;cursor:pointer;border:var(--border-width-hairline) solid var(--color-border);border-radius:var(--radius-sm);padding:.4em .75em;background-color:var(--color-background-secondary);color:inherit;text-box:trim-both cap alphabetic;svg{width:1.25cap;height:1.25cap;flex-shrink:0}}}@layer typography{html{font-variant-ligatures:common-ligatures;hanging-punctuation:first allow-end last}body{font-family:var(--font-prose);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--leading-normal)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--leading-snug);margin-top:1.5em;border-bottom:var(--border-width-hairline) solid var(--color-border);padding-bottom:.3em}h1{font-size:var(--font-size-xl)}h2{font-size:var(--font-size-lg)}h3{font-size:var(--font-size-md)}h4,h5,h6{font-size:var(--font-size-base)}a{color:var(--color-accent);text-decoration:underline;text-decoration-thickness:max(.08em,1px);text-underline-offset:.2em;text-decoration-skip-ink:auto;transition:color var(--duration-fast) var(--ease-in-out),text-decoration-color var(--duration-fast) var(--ease-in-out)}a:visited{color:var(--color-visited)}a:hover,a:focus{color:var(--color-accent)}a:not(:is(:hover,:focus)){text-decoration-color:color-mix(in srgb,currentColor,transparent 60%)}ul,ol{padding-left:var(--space-m)}li{padding-left:var(--space-xs);margin-top:var(--space-xs)}li:first-child{margin-top:0}li>ul,li>ol{margin-top:var(--space-xs)}li::marker{color:var(--color-accent)}ul{list-style-type:"•"}blockquote{border-left:var(--border-width-thick) solid var(--color-accent);padding-left:var(--space-m);font-style:italic;margin-left:0}blockquote figcaption{margin-top:var(--space-2xs);text-align:right;padding-left:var(--space-m)}blockquote cite{font-family:var(--font-ui);font-size:var(--font-size-sm);font-style:normal;color:var(--color-text-secondary)}:where(p,ul,ol,blockquote,pre,figure,table){margin-top:1.25em}:where(p,ul,ol,blockquote,pre,figure,table):first-child{margin-top:0}samp,:not(pre)>code{font-family:var(--font-code);font-size:var(--font-size-sm);font-variant-numeric:normal;background-color:var(--color-background-code);border:var(--border-width-hairline) solid var(--color-border);padding:.1em .4em;border-radius:var(--radius-sm)}strong{font-weight:var(--font-weight-bold)}kbd{display:inline-block;position:relative;top:-1px;min-width:.75em;text-align:center;padding:.3em .4em;background-color:var(--color-background-secondary);cursor:default;line-height:1;text-box-trim:trim-both;text-box-edge:cap alphabetic;font-family:var(--font-code);font-size:.65em;text-transform:uppercase;font-weight:var(--font-weight-medium);font-variant-numeric:normal;border:var(--border-width-hairline) solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 2px 0 1px var(--color-border);white-space:nowrap;&:hover{box-shadow:0 1px 0 .5px var(--color-border);top:1px}}table :not(pre)>code{line-height:2}[data-footnote-ref]{display:inline-block;padding-inline:.5ch;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);font-variant:small-caps;letter-spacing:var(--tracking-wide);text-decoration:none;color:var(--color-accent)}.footnotes{border-top:var(--border-width-hairline) solid var(--color-accent);margin-top:var(--space-m);padding-top:var(--space-s);font-size:var(--font-size-sm);[data-footnote-backref]{text-decoration:none;color:var(--color-accent)}}}@layer layout{.flow>*+*{margin-top:var(--space-m)}.flow>*+:is(h1,h2){margin-top:var(--space-xl)}.flow>*+h3{margin-top:var(--space-l)}.list-reset{list-style:none;margin:0;padding:0;gap:var(--space-xs);& li{padding-left:0;margin-top:0}}.all-caps{text-transform:uppercase;letter-spacing:var(--tracking-wide)}}@layer utilities{.ui-style{font-family:var(--font-ui);font-weight:var(--font-weight-normal);line-height:var(--leading-snug);& a{text-decoration:none;color:inherit;transition:color var(--duration-fast) ease-in-out}& a:visited{color:inherit}& a:hover,a:focus{color:var(--color-accent)}:is(h1,h2,h3,h4,h5,h6){border-bottom:none;padding-bottom:0;margin-top:0}& li::marker{color:inherit}}.dark-surface{background-color:var(--color-charcoal);color:var(--color-beige)}.cq{container-type:inline-size}.card-surface{background-color:var(--surface-raised);border:var(--border-width-hairline) solid var(--color-border);border-radius:var(--radius-sm);filter:var(--shadow-small)}.img-cover{width:100%;height:100%;object-fit:cover}.content-trim{>:first-child{margin-top:0}>:last-child{margin-bottom:0}}.external-arrow{font-family:system-ui,-apple-system,sans-serif;font-size:.7em;vertical-align:.1em;opacity:.5;font-weight:600;margin-left:.18em}.sr-only,.hidden-microformat{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}}svg[id^=mermaid-]{display:block;margin:var(--space-l) auto;padding:var(--space-m);border-radius:var(--radius-sm);max-width:100%;height:auto;background-color:light-dark(var(--color-background-secondary),#ffffff)}::view-transition-group(.note-card){animation-duration:.35s;animation-timing-function:ease-in-out}::view-transition-group(site-footer){animation-duration:.25s;animation-timing-function:ease-in-out}@property --_thumb-bg{syntax: "<color>"; inherits: false; initial-value: transparent;}.theme-toggle[data-astro-cid-zs7jgplt]{--_size: var(--theme-toggle-thumb-size, clamp(1.75rem, 4vw, 2.25rem));--_pad: var(--theme-toggle-padding, var(--space-3xs));--_gap: var(--theme-toggle-gap, var(--space-3xs));--_pos: 1;display:inline-grid;grid-template-columns:repeat(3,var(--_size));gap:var(--_gap);padding:var(--_pad);position:relative;border-radius:var(--radius-full);border:var(--border-width-hairline) solid color-mix(in oklch,var(--color-text) 12%,transparent);background:color-mix(in oklch,var(--color-background) 80%,var(--color-background-secondary));&[data-astro-cid-zs7jgplt]:before{content:"";position:absolute;inset-block:var(--_pad);width:var(--_size);border-radius:var(--radius-full);pointer-events:none;translate:calc(var(--_pad) + (var(--_size) + var(--_gap)) * var(--_pos)) 0;background:var(--_thumb-bg, color-mix(in oklch, var(--color-text) 10%, var(--color-background-secondary)));transition:translate var(--duration-fast) var(--ease-in-out)}&[data-astro-cid-zs7jgplt]:has([data-theme-option=light][aria-checked=true]){--_pos: 0;--_thumb-bg: color-mix(in oklch, var(--color-accent) 45%, var(--color-background))}&[data-astro-cid-zs7jgplt]:has([data-theme-option=dark][aria-checked=true]){--_pos: 2;--_thumb-bg: color-mix(in oklch, var(--color-accent) 25%, var(--color-background))}& button[data-astro-cid-zs7jgplt]{display:grid;place-items:center;aspect-ratio:1;padding:0;border:0;border-radius:var(--radius-full);background:transparent;color:color-mix(in oklch,var(--color-text) 40%,transparent);cursor:pointer;z-index:1;transition:color var(--duration-fast) var(--ease-in-out);&[aria-checked=true]{color:var(--color-text)}&[data-astro-cid-zs7jgplt]:hover{color:color-mix(in oklch,var(--color-text) 70%,transparent)}&[data-astro-cid-zs7jgplt]:focus-visible{outline:var(--border-width-base) solid color-mix(in oklch,var(--color-accent) 65%,transparent);outline-offset:2px}}& svg[data-astro-cid-zs7jgplt]{width:1.25em;height:1.25em}@media(prefers-reduced-motion:reduce){&[data-astro-cid-zs7jgplt]:before{transition:none}}}@property --_border-color{syntax: "<color>"; inherits: false; initial-value: oklch(70% .18 25);}.content-card[data-astro-cid-n4juacz6]{--_border-color: var(--color-accent);position:relative;background:var(--surface-raised);filter:var(--shadow-small);overflow:hidden;transition:filter var(--duration-fast) var(--ease-in-out);&[data-astro-cid-n4juacz6]:before{content:"";position:absolute;inset-block:0;left:0;width:var(--border-width-thick);background:var(--_border-color);transition:width var(--duration-fast) var(--ease-in-out);z-index:1}&[data-astro-cid-n4juacz6]:hover{filter:var(--shadow-medium)}&[data-astro-cid-n4juacz6]:hover:before{width:var(--border-width-heavy)}&.compact{[data-astro-cid-n4juacz6]:is(.card-image,.card-summary,.card-body){display:none}.card-content[data-astro-cid-n4juacz6]{padding:var(--space-xs)}.card-title[data-astro-cid-n4juacz6]{font-size:var(--font-size-base)}}}.card-link[data-astro-cid-n4juacz6]{display:block;height:100%;&[data-astro-cid-n4juacz6]:focus-visible{outline:var(--border-width-base) solid var(--color-accent);outline-offset:2px}}.card-image[data-astro-cid-n4juacz6]{width:100%;aspect-ratio:2 / 1;max-height:200px;overflow:hidden;& img[data-astro-cid-n4juacz6]{width:100%;height:100%;object-fit:cover;object-position:center}}.card-content[data-astro-cid-n4juacz6]{padding:var(--space-s)}.card-meta[data-astro-cid-n4juacz6]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--space-2xs);margin-bottom:var(--space-2xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.type-label[data-astro-cid-n4juacz6]{text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-medium)}.card-title[data-astro-cid-n4juacz6]{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);line-height:var(--leading-snug)}.card-summary[data-astro-cid-n4juacz6],.card-body[data-astro-cid-n4juacz6]{margin-top:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--leading-normal)}@container (width < 350px){[data-astro-cid-n4juacz6]:is(.card-image,.card-summary,.card-body){display:none}.card-content[data-astro-cid-n4juacz6]{padding:var(--space-xs)}.card-title[data-astro-cid-n4juacz6]{font-size:var(--font-size-sm)}}.markdown-actions[data-astro-cid-jbf4uovo]{margin-top:var(--space-l);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.flash-notification{position:fixed;top:var(--space-s);right:var(--space-s);z-index:9999;font-family:var(--font-ui);font-size:var(--font-size-sm);background-color:var(--color-accent);color:var(--color-white);padding:var(--space-2xs) var(--space-s);border-radius:var(--radius-sm);animation:slideIn var(--duration-slow) ease-out forwards}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.personal-logo[data-astro-cid-kq3xl56x]{display:flex;align-items:center;gap:var(--space-s)}.circle[data-astro-cid-kq3xl56x]{width:var(--space-s);aspect-ratio:1;background-color:var(--color-accent);border-radius:var(--radius-full)}.name[data-astro-cid-kq3xl56x]{text-transform:uppercase;letter-spacing:var(--tracking-wide);font-weight:var(--font-weight-bold);text-box:trim-both cap alphabetic}.pill[data-astro-cid-spvl7h2n]{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:.4em .7em .1em;border-radius:var(--radius-xs);max-width:100%;--_pill-bg: var(--local-pill-bg, var(--color-background-secondary));background-color:var(--_pill-bg);color:var( --local-pill-fg, light-dark( color-mix(in oklch, var(--_pill-bg) 30%, black), color-mix(in oklch, var(--_pill-bg) 30%, white) ) );border:var(--border-width-hairline) solid light-dark(color-mix(in oklch,var(--_pill-bg) 70%,black),color-mix(in oklch,var(--_pill-bg) 70%,white))}.social-links[data-astro-cid-47w6s6lx]{ul{display:flex;justify-content:center;margin:0}li{margin:0}a{display:flex;width:var(--space-l);justify-content:center;align-items:center;border-radius:var(--radius-full);aspect-ratio:1;color:inherit;transition:background-color var(--duration-fast) var(--ease-in-out)}a:is(:hover,:active,:focus){background-color:color-mix(in oklch,currentColor 15%,transparent)}}.spinnersvg[data-astro-cid-mmgdppss]{width:var(--size);height:var(--size);animation:rotate 2s linear infinite}.spinnersvg[data-astro-cid-mmgdppss] .path[data-astro-cid-mmgdppss]{stroke:var(--color-accent);stroke-linecap:round;animation:dash 1.5s ease-in-out infinite}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}footer[data-astro-cid-35ed7um5]{position:relative;border-top:var(--border-width-accent) solid var(--color-accent);padding:var(--space-s);view-transition-name:site-footer}.footer-nav-links[data-astro-cid-35ed7um5]{font-size:var(--font-size-sm);font-weight:var(--font-weight-regular);padding-left:calc(var(--space-s) * 2);li{margin-top:var(--space-3xs);line-height:var(--leading-normal)}}.copyright[data-astro-cid-35ed7um5]{font-size:var(--font-size-sm);font-weight:var(--font-weight-light);position:absolute;right:var(--space-s);top:var(--space-s);writing-mode:vertical-rl;@media(max-width:380px){position:static;writing-mode:horizontal-tb;text-align:center;margin-top:var(--space-m)}}.footer-rss[data-astro-cid-35ed7um5]{font-size:var(--font-size-sm);display:flex;justify-content:flex-start;padding-left:calc(var(--space-s) * 2);gap:var(--space-3xs);margin-top:var(--space-m)}.footer-rss-icon-wrapper[data-astro-cid-35ed7um5]{color:var(--color-accent)}.footer-rss-separator[data-astro-cid-35ed7um5]{color:color-mix(in oklch,currentColor 40%,transparent)}.footer-meta[data-astro-cid-35ed7um5]{font-size:var(--font-size-sm);display:flex;justify-content:flex-start;padding-left:calc(var(--space-s) * 2);gap:var(--space-3xs);margin-top:var(--space-3xs);margin-bottom:var(--space-m);color:color-mix(in oklch,currentColor 50%,transparent)}.footer-meta-separator[data-astro-cid-35ed7um5]{color:color-mix(in oklch,currentColor 60%,transparent)}.inline-footnote-container{font-size:var(--font-size-sm);padding:var(--space-s);margin-top:var(--space-xs);position:relative;[data-footnote-backref]{display:none}}.inline-footnote-close{position:absolute;top:var(--space-2xs);right:var(--space-2xs);border:none;background:transparent;color:var(--color-text-secondary);font-size:1.2rem;line-height:1;padding:.25rem;opacity:.6;transition:opacity var(--duration-fast);&:hover{opacity:1}}.nav-open[data-astro-cid-gd57ff7c]{position:absolute;top:var(--space-s);left:var(--space-s);aspect-ratio:1;padding:var(--space-2xs);z-index:1000;background:oklch(from var(--color-background-secondary) l c h / .8);color:var(--color-accent);border:none}.main-navigation[data-astro-cid-gd57ff7c]{position:fixed;left:-100%;min-width:18rem;min-height:100vh;z-index:1000;border-right:var(--border-width-accent) solid var(--color-accent);padding:var(--space-s);transition:left var(--duration-normal) var(--ease-in-out)}.main-navigation[data-astro-cid-gd57ff7c].open{left:0}.nav-close[data-astro-cid-gd57ff7c]{position:absolute;top:var(--space-2xs);right:var(--space-2xs);padding:var(--space-3xs);background:transparent;border:none}.nav-links[data-astro-cid-gd57ff7c]{margin-block:var(--space-m);padding-left:calc(var(--space-s) * 2);li{margin-top:var(--space-2xs)}a.active{color:var(--color-accent)}}.theme-toggle-wrapper[data-astro-cid-gd57ff7c]{display:flex;justify-content:center}.note[data-astro-cid-au7f75uy]{width:100%;padding:var(--space-m);border-radius:var(--radius-sm);border-top:var(--border-width-accent) solid light-dark(var(--color-black),var(--color-accent));background-color:var(--surface-raised);background-image:radial-gradient(light-dark(color-mix(in oklch,var(--color-coral) 20%,transparent),transparent) .5px,transparent 0);background-size:var(--space-xs) var(--space-xs);color:var(--color-text);filter:var(--shadow-medium);view-transition-name:var(--vt-name, none);view-transition-class:note-card}.note-header[data-astro-cid-au7f75uy]{display:flex;flex-direction:column;gap:var(--space-2xs);min-width:0}.date-link[data-astro-cid-au7f75uy]{color:var(--color-text-secondary)}.date[data-astro-cid-au7f75uy]{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--tracking-wider)}h1[data-astro-cid-au7f75uy].title{font-size:var(--font-size-lg);padding-bottom:var(--space-2xs);border-bottom:var(--border-width-base) solid var(--color-accent)}.tags[data-astro-cid-au7f75uy]{display:flex;flex-wrap:wrap;gap:var(--space-2xs)}.source-url[data-astro-cid-au7f75uy],.note-content[data-astro-cid-au7f75uy]{margin-top:var(--space-m)}.lightbox[data-astro-cid-a466tt3r]{position:fixed;inset:0;background:#000000e6;display:none;justify-content:center;align-items:center;z-index:1000;&.is-open{display:flex}}.lightbox[data-astro-cid-a466tt3r] canvas[data-astro-cid-a466tt3r]{max-width:90%;max-height:90%}.lightbox-close[data-astro-cid-a466tt3r]{position:absolute;top:var(--space-m);right:var(--space-m);font-size:var(--font-size-xl);line-height:var(--leading-none);color:var(--color-white);cursor:pointer}html:has(.lightbox.is-open){overflow:hidden}.toc-wrapper[data-astro-cid-rerddjhr]{display:none;position:absolute;top:27rem;left:var(--space-s);width:calc(calc(100vw - var(--measure-standard)) / 2);height:100%}@media(min-width:1400px){.toc-wrapper[data-astro-cid-rerddjhr]{display:block}}.toc[data-astro-cid-rerddjhr]{position:sticky;top:var(--space-l);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);font-optical-sizing:auto;font-variant-caps:all-small-caps;font-variant-numeric:tabular-nums;font-variant-ligatures:common-ligatures;letter-spacing:var(--tracking-tight)}.toc-list[data-astro-cid-rerddjhr],.toc-sublist[data-astro-cid-rerddjhr]{list-style:none;margin:0;padding:0}.toc-list[data-astro-cid-rerddjhr]{position:relative;padding-left:var(--space-m)}.toc-sublist[data-astro-cid-rerddjhr]{padding-left:var(--space-s)}.toc-list[data-astro-cid-rerddjhr] li[data-astro-cid-rerddjhr]{margin:0;padding:0}.toc-link[data-astro-cid-rerddjhr]{display:block;padding:var(--space-2xs) 0;padding-left:var(--space-xs);line-height:var(--leading-snug);color:color-mix(in oklch,var(--color-text) 50%,transparent);text-decoration:none;overflow-wrap:break-word;transition:color var(--duration-fast) var(--ease-in-out)}.toc-link[data-astro-cid-rerddjhr]:hover{color:var(--color-text)}li[data-astro-cid-rerddjhr].visible>.toc-link[data-astro-cid-rerddjhr]{color:var(--color-accent)}.toc-marker[data-astro-cid-rerddjhr]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;color:color-mix(in oklch,var(--color-accent) 50%,transparent);transition:color var(--duration-fast) var(--ease-in-out)}.toc[data-astro-cid-rerddjhr]:hover .toc-marker[data-astro-cid-rerddjhr]{color:var(--color-accent)}.toc-marker[data-astro-cid-rerddjhr] path[data-astro-cid-rerddjhr]{transition:stroke-dasharray .3s ease,opacity .3s ease}@media(prefers-reduced-motion:reduce){.toc-marker[data-astro-cid-rerddjhr] path[data-astro-cid-rerddjhr]{transition:none}}@layer longform{.longform-prose{line-height:var(--leading-loose);text-rendering:optimizeLegibility}.longform-prose:last-child{margin-bottom:var(--space-l)}.longform-prose h1.title{font-size:var(--font-size-2xl);font-variation-settings:"opsz" 50;line-height:var(--leading-snug);margin-bottom:var(--space-2xl);border-bottom:none}.longform-prose>:is(h4,h5,h6){font-weight:var(--font-weight-bold)}.longform-prose>:is(h1,h2,h3,h4,h5,h6,hr)+:is(h1,h2,h3,h4,h5,h6){margin-top:var(--space-m)}.longform-prose :is(p,li,blockquote,figcaption){font-variant-numeric:oldstyle-nums}.longform-prose strong{font-weight:var(--font-weight-semibold)}@media(max-width:42em){.longform-prose>p{-webkit-hyphens:auto;hyphens:auto;text-wrap:auto}}.longform-prose>p:last-of-type:after{color:var(--color-accent);display:inline-block;content:" ";-webkit-mask:url(/end-mark.svg);mask:url(/end-mark.svg);-webkit-mask-size:cover;mask-size:cover;background-color:currentColor;height:.65em;width:1em;line-height:.5;margin-left:.1em}.longform-prose a:not([data-footnote-ref],[data-footnote-backref]){color:inherit;text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:var(--border-width-hairline);text-underline-offset:.3em;text-decoration-skip-ink:none;border-radius:var(--radius-xs);transition:color var(--duration-fast) var(--ease-in-out),text-decoration-color var(--duration-fast) var(--ease-in-out)}.longform-prose a:not([data-footnote-ref],[data-footnote-backref]):visited{text-decoration-color:var(--color-visited)}.longform-prose a:not([data-footnote-ref],[data-footnote-backref]):is(:hover,:active){text-decoration-color:var(--color-accent);color:var(--color-accent)}.longform-prose a:not([data-footnote-ref],[data-footnote-backref]):focus-visible{outline:var(--border-width-base) solid var(--color-accent);text-decoration:none}@media(pointer:coarse){.longform-prose a:not([data-footnote-ref],[data-footnote-backref]){text-decoration:none;color:var(--color-accent)}.longform-prose a:not([data-footnote-ref],[data-footnote-backref]):visited{color:var(--color-visited)}}.longform-prose h1 a{text-decoration:none;color:inherit}.longform-prose li{margin-top:var(--space-2xs)}.longform-prose :is(ul,ol){padding-left:.4em}.longform-prose ol ::marker{font-size:1.4ex;font-variation-settings:"opsz" 10;font-weight:var(--font-weight-medium)}.longform-prose .contains-task-list{list-style-type:none;padding-left:0}.longform-prose .task-list-item{padding-left:0}.longform-prose .task-list-item input{position:relative;height:.7em;width:.7em;margin-bottom:0;appearance:none;outline:none;border-radius:var(--radius-xs);border:var(--border-width-hairline) solid var(--color-border)}.longform-prose .task-list-item input:checked{color:var(--color-accent);background:transparent;border-color:var(--color-accent)}.longform-prose .task-list-item input:checked:before{content:"✓";position:absolute;top:-.1em;left:.05em;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-accent)}.longform-prose .task-list-item input[disabled]{opacity:1}.longform-prose hr{display:flex;align-items:center;justify-content:center;width:100%;height:0;overflow:visible;margin:var(--space-xl) 0;border:var(--border-width-hairline) solid var(--color-border)}.longform-prose hr:before{content:"§";transform:translateY(-.15em);background:var(--color-background);padding:0 var(--space-2xs)}}
