*,*:before,*:after{box-sizing:border-box}*{margin:0}@media(prefers-reduced-motion:no-preference){html{interpolate-size:allow-keywords}}body{line-height:1.5;-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty}h1,h2,h3,h4,h5,h6{text-wrap:balance}#root,#__next{isolation:isolate}.prose *{margin:0;padding:0;font-size:var(--font-size-m)}.prose{margin-bottom:8rem}.prose .title{margin-bottom:2.5em}.prose .title h1{margin:0 0 .375rem}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5{font-size:var(--font-size-l);font-family:var(--serif);font-weight:var(--font-weight-bold);line-height:1.75;margin:1em 0}.prose strong,.prose b{font-weight:var(--font-weight-bold)}.prose em{font-family:var(--serif);font-style:italic;letter-spacing:0}.prose a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--text-tertiary);transition:all .2s ease-out}.prose a:hover{color:var(--accent);text-decoration-color:var(--accent)}.prose p{line-height:1.75;margin:1em 0}.prose table{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0;margin:1em 0;font-size:var(--font-size-m);border:1px solid var(--border);border-radius:8px;overflow:hidden}.prose th,.prose td{border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.5em 1em;text-align:left}.prose th:last-child,.prose td:last-child{border-right:none}.prose tr:last-child td{border-bottom:none}.prose th{background:var(--astro-code-background);font-weight:var(--font-weight-bold)}.prose img{max-width:100%;height:auto;display:block;margin:2em 0}.img-placeholder{background:var(--code-bg);display:block}.prose img[loading=lazy]{opacity:0;animation:fadeIn .3s ease-out forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.prose figure{margin-bottom:2em;text-align:center}.prose figure img{margin-bottom:1em}.prose figure figcaption{color:var(--text-secondary);font-size:var(--font-size-s);text-align:center}.prose p>img{position:relative;margin-bottom:2em}.prose p>img:after{content:attr(alt);display:block;position:absolute;left:0;width:100%;text-align:center;color:var(--text-secondary);font-size:var(--font-size-s);margin-top:.75em}.prose .img-caption{display:block;text-align:center;color:var(--text-secondary);font-size:var(--font-size-s);margin-bottom:2em}.prose code{padding:2.5px 3.5px;border-radius:5px;background-color:var(--code-bg);border:.5px solid var(--border);font-family:var(--mono);font-size:.9em;font-feature-settings:"liga" 0,"calt" 0;-webkit-font-feature-settings:"liga" 0,"calt" 0}.prose blockquote{border-left:2px solid var(--border);margin:0 0 1em .125em;padding:0 0 0 1.375em;text-align:left}.prose blockquote p{margin:0}.prose blockquote cite{display:inline-block;margin-top:.5em}.prose ul{list-style-type:none;padding-left:0;margin-left:1rem;margin-bottom:1.75em;line-height:1.75}.prose ul ul{margin-left:.625rem;margin-top:.5em;margin-bottom:.5em}.prose ul li{position:relative;padding-left:.5rem;margin-bottom:.5em}.prose ul li:last-child{margin-bottom:0}.prose ul li>ul{margin-top:.5em;margin-bottom:.5em}.prose ul li:before{content:"•";position:absolute;left:-1.25rem;top:-.05em;width:1.5rem;text-align:center;color:var(--text-tertiary)}.prose ol{list-style-position:outside;padding-left:0;margin-left:1.25rem;margin-bottom:1.75em;counter-reset:item}.prose ol li{display:block;position:relative;padding-left:.25rem;margin-bottom:.5em}.prose ol li:last-child{margin-bottom:0}.prose ol li:before{content:counter(item) ".";counter-increment:item;position:absolute;left:-1.15rem;width:1.5rem;text-align:left;color:var(--text-secondary);opacity:.75;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"liga" 1,"ordn" 1}.prose ul.contains-task-list{list-style:none;margin-left:0;white-space:nowrap}.prose ul.contains-task-list li:before{content:none}.prose ul.contains-task-list li.task-list-item{padding-left:.125em;margin-bottom:.5em}.prose ul.contains-task-list li.task-list-item:last-child{margin-bottom:0}.prose ul.contains-task-list li.task-list-item input[type=checkbox]{margin-right:.5em;position:relative;top:.175em;width:1em;height:1em;border:1.35px solid var(--text-tertiary);border-radius:4px;background:transparent;appearance:none;-webkit-appearance:none}.prose ul.contains-task-list li.task-list-item input[type=checkbox]:checked{position:relative;background:var(--code-bg);font-family:var(--sans);border:1.35px solid var(--text-tertiary);opacity:.75}.prose ul.contains-task-list li.task-list-item input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-45%,-55%);font-family:var(--sans);font-size:10px;font-weight:650;color:var(--text-primary);opacity:.55}.prose ul.contains-task-list li.task-list-item input[type=checkbox]+*{display:inline;margin-left:0;line-height:1.75;white-space:nowrap}.prose sup,.prose sub,.prose sup a{margin:0 .125em;font-size:.875em;line-height:1}.prose hr{margin:1.5em 0;height:auto;border:none;background:none;text-align:center;position:relative}.prose hr:before{content:"***";font-family:var(--mono);color:var(--text-tertiary);font-size:.875em;letter-spacing:.25em}.prose kbd{font-family:var(--mono);font-size:var(--font-size-s);border:1px solid var(--text-tertiary);padding:1px 4px;border-radius:5px;min-width:1.75em;display:inline-block;text-align:center}.prose mark{background-color:var(--mark);color:var(--text-primary);padding:3px 1px}.prose .footnotes{margin-top:4rem;padding-top:1.75rem;position:relative}.prose .footnotes:before{content:"";position:absolute;top:0;left:0;width:4rem;height:1px;background-color:var(--border)}.prose cite{font-style:normal}.prose [data-footnote-backref]{position:relative;font-family:var(--mono);font-size:var(--font-size-l);top:-.05em}.prose [data-footnote-ref]{font-size:1em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"liga" 1,"ordn" 1}.prose [data-footnote-ref],.prose [data-footnote-backref]{color:var(--text-secondary);opacity:.875;text-decoration:none;transition:color .2s ease-out;padding-right:.5em}.prose [data-footnote-ref]:hover,.prose [data-footnote-backref]:hover{color:var(--text-primary)}.prose pre{background-color:var(--astro-code-background);border-radius:8px;padding:1.25em 1.5em;margin:2em 0;overflow-x:auto}@media(max-width:768px){.prose pre{padding:1em 1.25em}}.prose pre>code{font-family:var(--mono);display:block;white-space:pre;word-break:normal;overflow-wrap:normal;padding:0;margin:0;background:none;border:none;line-height:1.5;border-radius:0}.prose pre>code *{font-size:var(--font-size-s)}.katex-mathml{display:none!important}.katex-display{text-align:center;margin:1.75em 0}.katex *{box-sizing:content-box}.katex,.katex *{color:inherit}.katex .base,.katex .strut,.katex .mathit,.katex .mathrm,.katex .mathbf,.katex .mathsf,.katex .mathtt{line-height:initial;vertical-align:baseline}@media(prefers-color-scheme:dark){.katex,.katex *{color:inherit}}.reading-time{color:var(--text-secondary);letter-spacing:-.025em}.reading-time .separator{margin:0 .25em}.prose iframe{width:100%;aspect-ratio:16/9;border:none;border-radius:6px;margin:.25em 0 0}.prose iframe[src*="spotify.com"]{aspect-ratio:auto}:root{--content-width: 25rem;--sans: Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;--serif: Besley, Baskerville, Georgia, Cambria, "Times New Roman", Times, serif;--mono: "Fira Code", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-size-s: .8125rem;--font-size-m: .9375rem;--font-size-l: 1.0625rem;--font-weight-light: 350;--font-weight-regular: 400;--font-weight-bold: 500;--spacing-s: -.08em;--spacing-m: -.02em;--bg: #f4effc;--text-primary: #1f1135;--text-secondary: #493c66;--text-tertiary: rgba(73, 60, 102, .4);--accent: #9b145a;--accent-light: #b188f9;--border: rgba(155, 20, 90, .15);--selection: rgba(177, 136, 249, .2);--code-bg: rgba(155, 20, 90, .05);--mark: #ffabe0;--astro-code-foreground: #1f1135;--astro-code-background: rgba(155, 20, 90, .04);--astro-code-token-constant: #9b145a;--astro-code-token-string: #493c66;--astro-code-token-comment: rgba(73, 60, 102, .5);--astro-code-token-keyword: #9b145a;--astro-code-token-parameter: #1f1135;--astro-code-token-function: #b188f9;--astro-code-token-string-expression: #493c66;--astro-code-token-punctuation: rgba(31, 17, 53, .6);--astro-code-token-link: #9b145a}html.light{--bg: #f4effc;--text-primary: #1f1135;--text-secondary: #493c66;--text-tertiary: rgba(73, 60, 102, .4);--accent: #9b145a;--accent-light: #b188f9;--border: rgba(155, 20, 90, .15);--selection: rgba(177, 136, 249, .2);--code-bg: rgba(155, 20, 90, .05);--mark: #ffabe0;--astro-code-foreground: #1f1135;--astro-code-background: rgba(155, 20, 90, .04);--astro-code-token-constant: #9b145a;--astro-code-token-string: #493c66;--astro-code-token-comment: rgba(73, 60, 102, .5);--astro-code-token-keyword: #9b145a;--astro-code-token-parameter: #1f1135;--astro-code-token-function: #b188f9;--astro-code-token-string-expression: #493c66;--astro-code-token-punctuation: rgba(31, 17, 53, .6);--astro-code-token-link: #9b145a}html.dark{--bg: #1a0e2e;--text-primary: #f4effc;--text-secondary: #b8a9d4;--text-tertiary: rgba(184, 169, 212, .4);--accent: #ff6eb4;--accent-light: #b188f9;--border: rgba(177, 136, 249, .2);--selection: rgba(177, 136, 249, .15);--code-bg: rgba(177, 136, 249, .08);--mark: #5a3068;--astro-code-foreground: #f4effc;--astro-code-background: rgba(177, 136, 249, .05);--astro-code-token-constant: #ff6eb4;--astro-code-token-string: #b8a9d4;--astro-code-token-comment: rgba(184, 169, 212, .5);--astro-code-token-keyword: #ff6eb4;--astro-code-token-parameter: #f4effc;--astro-code-token-function: #98acf7;--astro-code-token-string-expression: #b8a9d4;--astro-code-token-punctuation: rgba(244, 239, 252, .6);--astro-code-token-link: #ff6eb4}html{background-color:var(--bg);scroll-behavior:smooth;scrollbar-gutter:stable;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}body{font-family:var(--sans);font-size:var(--font-size-m);font-feature-settings:"ss03" 1;text-rendering:optimizeLegibility;color:var(--text-primary);font-display:swap;word-wrap:break-word;overflow-wrap:break-word;min-height:100vh;display:flex;flex-direction:column;letter-spacing:var(--spacing-m);padding:3rem 1.5rem 1.5rem;overscroll-behavior-y:contain;transition:background-color .2s ease-out}@media(max-width:768px){body{padding:2rem 1.35rem 1.35rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-size:var(--font-size-l);font-weight:var(--font-weight-bold);line-height:1.75}::selection{background-color:var(--selection)}:focus{outline:2px solid var(--text-tertiary);outline-offset:2px}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--text-tertiary);outline-offset:2px}body[data-width]{max-width:var(--content-width)}body[data-centered=true]{margin:0 auto}.date{margin:0;font-weight:var(--font-weight-light);color:var(--text-secondary);opacity:.75;flex-shrink:0;letter-spacing:var(--spacing-s);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 0,"cv01" 1,"cv02" 1,"calt" 1,"ss03" 1,"ordn" 1}.date .month{letter-spacing:var(--spacing-m)}.sr-only{border:0;padding:0;margin:0;position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}.theme-toggle{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:.25rem;color:var(--text-secondary);transition:color .2s ease;border-radius:4px}.theme-toggle:hover{color:var(--accent)}.theme-toggle svg{display:block}header[data-astro-cid-qlfjksao]{margin:0 0 2rem}nav[data-astro-cid-qlfjksao]{display:flex;justify-content:space-between;align-items:center;gap:1rem}.nav-links[data-astro-cid-qlfjksao]{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.nav-link[data-astro-cid-qlfjksao]{font-weight:var(--font-weight-regular);color:var(--text-secondary);text-decoration:none;transition:color .2s ease;font-size:var(--font-size-m)}.nav-link[data-astro-cid-qlfjksao]:hover{color:var(--accent)}.nav-link[data-astro-cid-qlfjksao].active{color:var(--text-primary);font-weight:var(--font-weight-bold)}@media(max-width:768px){nav[data-astro-cid-qlfjksao]{flex-direction:row;align-items:center}.nav-links[data-astro-cid-qlfjksao]{gap:1rem}.nav-link[data-astro-cid-qlfjksao]{font-size:var(--font-size-s)}}.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}@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}}.layout-wrapper{display:flex;flex-direction:column;min-height:calc(100vh - 7.5rem)}@media(max-width:768px){.layout-wrapper{min-height:calc(100vh - 5.5rem)}}
